Array 对象用于在单个的变量中存储多个值. 创建数组的方法如下:
let arr = new Array(); let arr = new Array(size); let arr = new Array(element0, element1, ..., elementn); let arr = []; let arr = ['apple','banana']
通过索引访问数组元素:
let item = arr[item]
遍历一个数组:
arrName.forEach(function (item, index, array) { console.log(item, index); });
Array常用对象方法:
-
concat() :
连接两个或更多的数组,并返回结果。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组
var arr = [1,3,5]; var arr2 = arr.concat[2,[4,6]]; console.log(arr2); // 1,3,5,2,4,6 console.log(arr); // 1,3,5 原数组不变
-
join() :
把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔。
let arr = ['Wind', 'Rain', 'Fire']; arr.join(); // 默认为 "," 'Wind,Rain,Fire' arr.join(""); // 分隔符为空字符串 " " "WindRainFire" arr.join("-"); // 分隔符 "-" 'Wind-Rain-Fire'
-
pop() :
删除并返回数组的最后一个元素。pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
let a = [1,3,5]; a.pop(); // 5
-
push() :
向数组的末尾添加一个或多个元素,并返回新的长度。
let arr = new Array("George","John","Thomas"); document.write(arr + "
"); // George,John,Thomas document.write(arr.push("James") + "
"); //4 document.write(arr); // George,John,Thomas,James -
shift() :
删除并返回数组的第一个元素
let arr = new Array("George","John","Thomas"); document.write(arr.shift() ); // George
-
unshift() :
向数组的开头添加一个或更多元素,并返回新的长度。
let arr = new Array("George","John","Thomas"); document.write(arr + "
"); // George,John,Thomas document.write(arr.unshift("William") + "
"); // 4 document.write(arr); // William,George,John,Thomas -
reverse() :
颠倒数组中元素的顺序。
let arr = ['one', 'two', 'three']; arr.reverse(); console.log(arr); // ['three', 'two', 'one']
-
slice() :
抽取当前数组中的一段元素组合成一个新数组,该方法不会修改数组,只会返回一个子数组。语法如下:
arrayObject.slice(start,end)
-
splice():
在任意的位置给数组添加或删除任意个元素,该方法会改变原数组。语法如下:
arrayObject.splice(index,howmany,item1,.....,itemX)
其中:index是必须参数,规定添加/删除项目位置;howmany也是必须参数,为删除的数目量;item…为可选参数,是向数组添加的新项目。 -
sort():
对数组的元素进行排序。语法为:
arrayObject.sort(sortby)
其中sortby为一个可选的排序函数。、function sortNumber(a,b) { return a - b } let arr = [1,5,8,2,6,4]; arr.sort(sortNumber); // 1,2,4,5,6,8
-
indexOf() :
返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
let arr = [1,3,6,8,9]; arr.indexOf(2); // -1 arr.indexOf(6); // 2
-
lastIndexOf() :
返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1
let arr = [1,3,6,8,9]; arr.lastIndexOf(2); // -1 arr.lastIndexOf(6); // 2
-
map() :
创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。map 不修改调用它的原数组本身
let arr = [1,4,9]; let num1 = arr.map(x => x*2); let num2 = arr.map(function(x){ return Math.sqrt(x); }); let num3 = arr.map(Math.sqrt); console.log(num1); // [2,8,18] console.log(num2); // [1,2,3] console.log(num3); // [1,2,3]
-
reduce() :
对累加器和数组中的每个元素 (从左到右)应用一个函数,将其减少为单个值
let sum = [0, 1, 2, 3].reduce(function(acc, val) { return acc + val; }, 0); console.log(sum); // 6
对应的还有 reduceRight() 方法 -
filter() :
“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
function isBigEnough(value) { return value >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); // [12, 130, 44]
-
every() :
如果数组中的每个元素都满足测试函数,则返回 true,否则返回 false
function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 130, 44].every(isBigEnough); // false
-
some() :
如果数组中至少有一个元素满足测试函数,则返回 true,否则返回 false。
function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 1, 4].some(isBigEnough); // true
在这里对数组的常用方法做个总结,方便以后查看。