>  기사  >  웹 프론트엔드  >  Array_javascript 기술을 위한 간단한 확장

Array_javascript 기술을 위한 간단한 확장

WBOY
WBOY원래의
2016-05-16 19:25:48799검색

사실 프로토타입 1.4의 열거형 객체 부분을 단순화한 버전입니다.
코드를 먼저 게시하고 나중에 하나씩 설명하겠습니다

. 최근 Python을 배우면서 항상 Python에 놀랐습니다. List는 유연하고
도 배열인데 왜 JavaScript는 Python만큼 유연하지 못합니까?
(실제로 다음 프로토타입 1.4가 구현되었지만 프로토타입이 너무 뚱뚱해서 알다시피 나는 뚱뚱한 여자에게 집착한다 관심 없음)
그래서 다음과 같은 코드가 있습니다....

복사 코드 코드는 다음과 같습니다.

<스크립트>
Array.prototype.map = function(f) {  
  var arr=[]
  for(var i=0;i  return arr  
}

Array.prototype.each = function(f) { 
  for(var i=0;i}

Array.prototype.find = function(f) {  
  for(var i=0;i  return null
}

Array.prototype.findAll = function(f) { 
  var arr=[]
  for(var i=0 ;i  return arr
}

Array.prototype.getPart = 함수 (f) {   
  for(var i=0;i}


Array.prototype.all = function(f) { 
  for(var i=0;i  return true
}

Array.prototype.any = function(f) { 
  for(var i=0;i  return false
}

Array.prototype.grep = function(regex,f) { 
  var arr=[]
  for(var i=0;i     if (this[i].toString().match(regex)) arr.push((f || function(x){return x})(this[i]))
  }  
  return arr
}

Array.prototype.include = function(v) { 
  for (var i=0;i  return false
}
Array.prototype.indexOf = function(v) { 
  for(var i=0;i  return -1
}

Array.prototype.inject = function(v,f) { 
  var vv=v
  for(var i=0;i  return vv
}

Array.prototype.max=function(){
  var v=this[0];
  for(var i=0;iv) v=this[i]
  return v
}

배열 .prototype.min=function(){
  var v=this[0];
  for(var i=0;i  return v
}

배열 .prototype.partition = function(f) { 
  var arr1=[],arr2=[]
  for(var i=0;i  return [arr1,arr2]
}



여기에 더 많은 문서가 있습니다., 스크립트에 대한 거부가 없습니다.
<script>alert(1)</script>
<스크립트>
함수 fff(){
alert("fff 함수")
}
fff()
<script>alert("마지막 경고()")</script>


<스크립트>
//对数组中每个元素都调用函数f执行,并把执行的结果按数组排列顺序返回,返回一个数组
Array.prototype.map = 함수(f) {  
  var arr=[]
  for(var i=0;i  return arr  
}

/ /对数组中每个元素tour调用函数f执行,只执行,不返回结果
Array.prototype.each = function(f) {  
  for(var i=0;i}

//最简单的例子
var arr=[3,1,5,2,7]
var arr2=arr.map (함수(x){return x*x})
alert(arr2)

//取整
var arr3=[3.121,1.555,5.8,2.0,7.9]
var arr4=arr3.map(Math.round)
alert(arr4)


//返回数组中每个字符串적 속도
var a1=["dasfsdfas","dasffdfs ","ds","2","cccccc"]
var a2=a1.map(function(x){return x.length})
alert(a2)


//这个例子比较常用,比如用 ajax抓了一个页면,怎么执行页면中所有script块呢?
var f=function(s){return s.replace(/^/,"").replace(/$/,"")}
o.value.match(/(?:)((n|r|.)*?)(?:)/gi).map(f).each( eval)

//더 복잡한 예
// http://community.csdn.net/Expert/topic/4796/4796192.xml?temp=.2977564


<script> <br>//함수 f를 true로 만드는 첫 번째 요소를 가져오고, 없으면 null을 반환합니다. <br>Array.prototype.find = function(f) { <br> for(var i=0;i<this.length;i ) if (f(this[i])) return this[i] <br> return null <br>} <br><br>/ /모든 요소 가져오기 함수 f를 true로 만들고, 찾을 수 없으면 빈 배열을 반환합니다. <br>Array.prototype.findAll = function(f) { <br> var arr=[] <br> for(var i=0; i<this.length ;i ) if (f(this[i])) arr.push(this[i]) <br> return arr <br>} <br><br>//배열에서 짝수 찾기 <br>var arr=[3,1,5,2,7,8,1,0,10] <br>var v=arr.find(function(x){return x%2==0}) <br>alert( v) <br><br>//모든 짝수 찾기<br>var arr2=arr.findAll(function(x){return x%2==0}) <br>alert(arr2) <br><br></script>