数组变异方法
push() 数组末尾添加一个项目,返回新数组长度,arr.push(item)
pop() 数组末尾删除一个元素,返回被删除元素,arr.pop()
shift() 删除数组开头第1个元素,返回该元素,arr.shift()
unshift() 向开头添加1个或者多个元素,返回新数组长度,arr.unshift(item1,item2....)
splice() 删除或者添加项目,arr.splice(deleteStart, deleteCount, addElement1, addElement2, ...)
reverse用于颠倒数组,返回改变后的数组
sort() 数组排序,默认按照字符串顺序排序
arr.sort(sortNumber) function sortNumber(a,b) { return a - b }
数组非变异方法
filter() 过滤数组中元素,,返回新数组,arr.filter(getBoys)
concat() 连接2个或者多个数组,返回新数组,arr1.concat(arr2)
slice() 截取数组中对象,返回新数组,arr.slice(start, end);
使用非变异数组方法时,可以用新数组替换旧数组
其他用途
join()将所有数组成员连接为一个字符串返回。如果不提供参数,默认用逗号分隔,a.join(' # ')
indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。indexOf方法还可以接受第二个参数,表示搜索的开始位置。
lastIndexOf方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1
数组的链式使用
var users = [ {name: 'tom', email: 'tom@example.com'}, {name: 'peter', email: 'peter@example.com'} ]; users .map(function (user) { return user.email; }) .filter(function (email) { return /^t/.test(email); }) .forEach(function (email) { console.log(email); }); // "tom@example.com"
上面代码中,先产生一个所有 Email 地址组成的数组,然后再过滤出以t开头的 Email 地址,最后将它打印出来。