javascript Array擴充套件

2021-09-05 21:42:29 字數 4148 閱讀 4624

最近看了一下developer.mozilla.org裡的東西,發現它為array物件新增了不少generic method,趕得上prototype的熱心程度。

indexof

返回元素在陣列的索引,沒有則返回-1。與string的indexof方法差不多。

如果其他瀏覽器沒有實現此方法,可以用以下**實現相容:

//09,12,11新修正

array.prototype.indexof=function(item, index)

var array = [2, 5, 9];

var index = array.indexof(2);

// index is 0

index = array.indexof(7);

// index is -1

lastindexof

與string的lastindexof方法差不多。

如果其他瀏覽器沒有實現此方法,可以用以下**實現相容:

//09,12,11新修正

array.prototype.lastindexof = function(el, index) ;

foreach

各類庫中都實現相似的each方法。

如果其他瀏覽器沒有實現此方法,可以用以下**實現相容:

array.prototype.foreach = function(fn, thisobj) 

};

function printelt(element, index, array) 

[2, 5, 9].foreach(printelt);

// prints:

// [0] is 2

// [1] is 5

// [2] is 9

every

如果陣列中的每個元素都能通過給定的函式的測試,則返回true,反之false。換言之給定的函式也一定要返回true與false

如果其他瀏覽器沒有實現此方法,可以用以下**實現相容:

array.prototype.every = function(fn, thisobj) 

}return true;

};

function isbigenough(element, index, array) 

var passed = [12, 5, 8, 130, 44].every(isbigenough);

console.log(passed)

// passed is false

passed = [12, 54, 18, 130, 44].every(isbigenough);

// passed is true

console.log(passed)

some

類似every函式,但只要有乙個通過給定函式的測試就返回true。

如果其他瀏覽器沒有實現此方法,可以用以下**實現相容:

array.prototype.some = function(fn, thisobj) 

}return false;

};

function isbigenough(element, index, array) 

var passed = [2, 5, 8, 1, 4].some(isbigenough);

// passed is false

passed = [12, 5, 8, 1, 4].some(isbigenough);

// passed is true

filter

把符合條件的元素放到乙個新陣列中返回。

如果其他瀏覽器沒有實現此方法,可以用以下**實現相容:

array.prototype.filter = function(fn, thisobj) 

a.push(this[i]);

}return a;

};

function isbigenough(element, index, array) 

var filtered = [12, 5, 8, 130, 44].filter(isbigenough);

map

讓陣列中的每乙個元素呼叫給定的函式,然後把得到的結果放到新陣列中返回。。

如果其他瀏覽器沒有實現此方法,可以用以下**實現相容:

array.prototype.map = function(fn, thisobj) 

return a;

};

var numbers = [1, 4, 9];

var roots = numbers.map(math.sqrt);

// roots is now [1, 2, 3]

// numbers is still [1, 4, 9]

reduce

讓陣列元素依次呼叫給定函式,最後返回乙個值,換言之給定函式一定要用返回值。

如果其他瀏覽器沒有實現此方法,可以用以下**實現相容:

array.prototype.reduce = function(fun /*, initial*/)

else

if (++i >= len)

throw new typeerror();

}while (true);

}for (; i < len; i++)

return rv;

};

var total = [0, 1, 2, 3].reduce(function(a, b));

// total == 6

//09,12,11新新增!

function tointeger(number) ;

array.prototype.indexof(item /*, i */) ;

array.prototype.lastindexof(item /*, i */)

//10,2,4新新增!

function tointeger(number)

var step = 1;

function indexof(item /*.i*/)

return (i > -1 && i < length ? i : -1);

} function lastindexof(item /*.i*/)

array.prototype.indexof = indexof;

array.prototype.lastindexof = lastindexof;

//10,5,18新新增!

array.prototype.indexof = function (el, index)

//10,9,26新新增!

function shuffle(a)

return array;

}

// 11.7.5 

array.prototype.remove = function(s)

return this;

}

逆順移除節點,效紊更高!

var arr = ["aaa","bbb","ccc","ddd"],reg = /aaa|ddd/

for (var i = arr.length, el; el = arr[--i]; )

}console.log(arr)

唯一化!

var unique = function(array)

ret.push(array[i]);

} return ret;

}function uniq(array)

}return ret;

}uniq([1,2,2,"a","b","a",{},function(){},null,void 0,null,3,2,void 0,{}])

JavaScript Array(陣列)物件

array 物件用於在單個的變數中儲存多個值。new array new array size new array element0,element0,elementn 引數 size 是期望的陣列元素個數。返回的陣列,length 欄位將被設為 size 的值。引數 element element...

javascript Array方法總結

var colors red green blue black yellow var colors2 colors.slice 1 green blue black yellow var colors3 colors.slice 1,4 green blue black var colors4 co...

javascript Array物件 屬性 方法

array.lenth屬性 concat方法 對於物件鏈結引用,對於字元或字串複製其值 join方法 由指定的分隔符分隔的所有元素 pop和.push pop從陣列中移除最後乙個元素並將該元素返回,如果該陣列為空,則返回undefined push方法將新元素按出現的順序追加。如果引數之一是乙個陣列...