Javascript数组操作
1.检测数组
if (Array.isArray(value)){ //对数组执行某些操作 }
2.栈方法
(1).push()方法 接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
(2).pop()方法 从数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。
3.队列方法
(1).shift()方法 移除数组中的第一个项并返回该项,同时将数组长度减 1 。
(2).unshift()方法 在数组前端添加任意个项并返回新数组的长度。
4.重排序方法
(1).reverse()方法 反转数组项的顺序。
(2).sort()方法 将数组排序,配合
function compare(value1, value2){ return value1 - value2; } value.sort(compare);
可以实现升序降序。
5.操作方法
(1).concat() 方法 基于当前数组中的所有项创建一个新数组。
var colors = ["red", "green", "blue"]; var colors2 = colors.concat("yellow", ["black", "brown"]); alert(colors); //red,green,blue alert(colors2); //red,green,blue,yellow,black,brown
(2).slice()方法 基于当前数组中的一或多个项创建一个新数组。
var colors = ["red", "green", "blue", "yellow", "purple"]; var colors2 = colors.slice(1); var colors3 = colors.slice(1,4); alert(colors2); //green,blue,yellow,purple alert(colors3); //green,blue,yellow
(3).splice()方法
01.删除 splice(0,2) 会删除数组中的前两项。
02.插入 splice(2,0,"red","green") 会从当前数组的位置 2 开始插入字符串"red"和"green" 。
03.替换 splice (2,1,"red","green") 会删除当前数组位置 2 的项,然后再从位置 2 开始插入字符串"red"和"green"。
6.位置方法
(1).indexOf()方法 从数组的开头(位置 0)开始向后查找。
(2).lastIndexOf()方法 从数组的末尾开始向前查找。
var numbers = [1,2,3,4,5,4,3,2,1]; alert(numbers.indexOf(4)); //3 alert(numbers.lastIndexOf(4)); //5 alert(numbers.indexOf(4, 4)); //5 alert(numbers.lastIndexOf(4, 4)); //3 var person = { name: "Nicholas" }; var people = [{ name: "Nicholas" }]; var morePeople = [person]; alert(people.indexOf(person)); //-1 alert(morePeople.indexOf(person)); //0
7.迭代方法
(1).every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。
var numbers = [1,2,3,4,5,4,3,2,1]; var everyResult = numbers.every(function(item, index, array){ return (item > 2); }); alert(everyResult); //false
(2).filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。
var numbers = [1,2,3,4,5,4,3,2,1]; var filterResult = numbers.filter(function(item, index, array){ return (item > 2); }); alert(filterResult); //[3,4,5,4,3]
(3).forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
var numbers = [1,2,3,4,5,4,3,2,1]; numbers.forEach(function(item, index, array){ //执行某些操作 });
(4).map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
var numbers = [1,2,3,4,5,4,3,2,1]; var mapResult = numbers.map(function(item, index, array){ return item * 2; }); alert(mapResult); //[2,4,6,8,10,8,6,4,2]
(5).some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。
var someResult = numbers.some(function(item, index, array){ return (item > 2); }); alert(someResult); //true
8.归并方法
reduce()和 reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。
(1).reduce()方法 从数组的第一项开始,逐个遍历到最后。
var values = [1,2,3,4,5]; var sum = values.reduce(function(prev, cur, index, array){ return prev + cur; }); alert(sum); //15
(2).reduceRight()方法 从数组的最后一项开始,向前遍历到第一项。
var values = [1,2,3,4,5]; var sum = values.reduceRight(function(prev, cur, index, array){ return prev + cur; }); alert(sum); //15
浙公网安备 33010602011771号