JavaScript数组方法
splice()
最强大的数组方法,可以对数组进行删除、插入和替换。
删除
可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。
var colors = ["red", "green", "blue"];
colors.splice(0,2); // 删除前两项 "red" "green"
colors.splice(1,1); // 删除从起始位置 1 开始的第一项 "green"
插入
以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。
var colors = ["red", "green", "blue"];
colors.splice(1, 0, "yellow", "orange"); // 从位置 1 开始插入两项
console.log(colors) // ["red", "yellow", "orange", "green", "blue"]
替换
可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。
var colors = ["red", "green", "blue"];
colors.splice(1, 1, "yellow", "purple"); // 从位置 1 删除一项,插入两项
console.log(colors) // ["red", "yellow", "purple", "blue"]
filter()
过滤方法,对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter(function(item, index, array){
return (item > 2);
});
console.log(filterResult); // 返回所有数值都大于 2 的数组 [3,4,5,4,3]
forEach()
遍历数组中的每一项,运行给定函数,但是没有返回值。本质上与使用 for 循环迭代数组一样。
var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item, index, array){
//执行某些操作
});
map()
对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map(function(item, index, array){
return item * 2;
});
console.log(mapResult); //[2,4,6,8,10,8,6,4,2]
every() & some()
every()
和 some()
,它们都用于查询数组中的项是否满足某个条件。对 every()
来说,传入的函数必须对每一项都返回 true
,这个方法才返回 true
;否则,它就返回 false
。而 some()
方法则是只要传入的函数对数组中的某一项返回 true
,就会返回 true
。
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every(function(item, index, array){
return (item > 2);
});
console.log(everyResult); //false
var someResult = numbers.some(function(item, index, array){
return (item > 2);
});
console.log(someResult); //true