Skip to main content

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