数组方法:
- arr.toString() 与 arr.join()输出相同,不过join里可以输入其它链接符
- arr.push(item)
接受任意数量的参数,添加到数组末尾,返回新数组的长度 - arr.pop()删除数组最后一项,返回删除的项
- arr.unshift()
接受任意数量的参数,添加到数组头部,返回新数组的长度 - arr.shift()
删除数组第一项,返回删除的项 - arr.sort()
如果不传参数,默认情况下数组内的元素会被转换为字符串进行比较,返回值为排序后的新数组。原数组会被改变
//对象形式的数组按属性排序
var arr = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
function compare(property){
return function(a,b){
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
}
}
console.log(arr.sort(compare('age')))
- arr.concat()
没有传递参数,那么只是复制当前数组并返回副本,原数组不变;
传递一个元素(数组)或多个元素(数组),会将其合并到arr中,返回新数组,原数组不变 - arr.slice
剪切数组,返回剪切之后的数组,元素不会改变
1、传入一个参数,表示起始位置,结束位置为最末尾;2、传入2个参数,表示起始位置与结束位置,但不包括结束位置所在的元素 - splice()
-
删除:arr.splice(index, num)
传入两个参数,第一个为位置( 数组下标),第二个为删除的项数,可以删除任意项,返回删除元素组成的数组,原数组变了 -
插入:arr.splice(index,0,item)
传入3个参数, [起始位置( 数组下标) | 要删除的项数 为0 | 要插入的元素], 最终返回删除掉的元素组成的数组,因为这里删除项数为0,因此会返回空数组 -
替换:arr.splice(index, num, item)
传入3个参数,[起始位置 | 要删除的项数 | 要插入的任意项数], 最终返回删除掉的元素组成的数组
- arr.reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终为一个值,是ES5中新增的又一个数组逐项处理方法,
- arr.map()
对数组中的每一项运行给定函数,返回每次函数调用的结果组成的新数组
//返回nums中每一项乘以2的数组
var nums = [1,2,3,4,5,4,3,2,1]
nums.map((item, index, arr)=> item * 2 ) // [2, 4, 6, 8, 10, 8, 6, 4, 2]
- arr.forEach()
对数组中的每一项运行给定函数,这个方法没有返回值
//返回nums中每一项乘以2的数组
var nums = [1,2,3,4,5,4,3,2,1]
nums.forEach((item, index, arr)=> item * 2 ) // undefined
- arr.indexOf()
验证数组中是否含有某个元素,返回第一个匹配到的元素在数组中所在的位置,如果没有,则返回 -1 - arr.includes()(ES6新增:)
数组是否包含某个值,返回true 或 false - ES6新增:
- arr.find() arr.findIndex()
找出第一个符合条件的数组成员,它参数是一个函数,每一个成员执行这个函数,找到返回true,没找到返回undefined
函数的参数[当前值 | 当前的位置 | 原数组] - for…of…
遍历数组元素