사실 프로토타입 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]
}
<스크립트>
//对数组中每个元素都调用函数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>