1. arr.push() 添加 后面
2. arr.pop() 删除 后面
3. arr.unshif() 添加 前面
4. arr.shift() 删除 前面
5. arr.reverse()
6. arr.concat() 拼接两个数组
7. arr.splice()
8. arr.slice()
9. arr.sort() 排序
10. arr.join()
11. arr.toString()
序号 | 方法 | 释义 | 返回值 | 是否改变原数组 |
---|---|---|---|---|
1 | arr.push() | 数组的末尾添加一个或多个元素 | 把指定的值添加到数组后的新长度 | yes |
2 | arr.pop() | 删除并返回数组的最后一个元素 | 数组的最后一个元素 | yes(如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。) |
1/2 | push() 方法和 pop() 方法 | 使用数组提供的先进后出栈的功能。 | ||
3 | arr.unshif() | 向数组的开头添加一个或多个元素 | 返回新数组的长度 | yes |
4 | arr.shift() | 把数组的第一个元素删除 | 返回删除元素的值 | yes |
5 | arr.reverse() | 颠倒数组中元素的顺序 | 该方法会改变原来的数组,而不会创建新的数组 | yes |
6 | arr.concat() | 方法用于连接两个或多个数组 | 被连接数组的一个副本 | No |
7 | arr.splice() | 向/从数组中添加/删除项目,然后返回被删除的项目(该方法会改变原数组)!!! | 删除项目的新数组 | yes |
8 | arr.slice() | 从已有的数组中返回选定的元素 | 返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。 | No |
9 | arr.sort() | 对数组的元素进行排序。 arrayObject.sort(sortby)。sortby:可选。规定排序顺序。必须是函数。 | 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。 | yes |
10 | arr.join() | 把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。如果省略分隔符,则使用逗号作为分隔符。 | 一个字符串 | yes |
11 | arr.toString() | arrayObject 的字符串表示 | 没有参数的 join() 方法返回的字符串相同 | yes |
8.arr.splice()的扩展
arrayObject.splice(index,howmany,item1,…,itemX)
参数 | 描述 |
---|---|
index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
item1, …, itemX | 可选。向数组添加的新项目。 |
10.arr.slice()的扩展
arrayObject.slice(start,end)
请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。
提示和注释
注释:您可使用负值从数组的尾部选取元素。
注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
注释:splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。
参数 | 释义 |
---|---|
start | 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 |
end | 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 |
【es5新增数组操作方法】
indexOf、forEach、map、every、some、filter、reduce
1,Array.indexOf()
查找数组内指定元素的位置,查到第一个值时返回其索引,没查到返回-1
let arr = [1,2,3,4];
console.log(arr.indexOf(3)); // 2
//.lastIndexOf(element)为倒序查找
//跟indexOf()一样,只是查找起始点不同,indexOf是从第一个开始查找,
//lastIndexOf()是从最后一个查找,如果存在,返回下标,如果不存在返回-1
2,Array.foreEach()
跟之前的for()循环一样,只是forEach更灵活
arr.forEach(function(e,index,arr){
//e 当前元素
//index 可选 当前元素的索引。
//arr 可选 整个数组。
});
3,Array.map()
map()方法返回一个被操作后的新数组,不会改变原数组
map()一般配合return使用,如果没有return那跟forEach一样
arr.map(function(e,index,arr){
//e 当前元素
//index 可选 当前元素的索引。
//arr 可选 整个数组。
});
三、区别
1、map速度比foreach快
2、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,foreach返回undefined
3、map因为返回数组所以可以链式操作,foreach不能
4, map里可以用return ,而foreach里用return不起作用,foreach不能用break,会直接报错
4,Array.some()
判断数组内是否有指定元素,如果只要有一个则返回true,如果一个都没有则返回false
arr.some(function(element,index,array){
//element 当前元素
//index 可选 当前元素的索引。
//array 可选 整个数组。
});
5,Array.filter(callback)
let b = a.filter(item => item.name === 'kele');
console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]
//Array.filter()让我们摆脱了for循环,代码看起来更加的清爽!
6,Array.reduce()
遍历数组,调用回调函数,将数组元素合成一个值返回结果,其中value为设定的初始值(可选)
arr.reduce(function(v1, v2), value)
【es6新增数组操作方法】
1,Array.find(callback)
这个方法是返回数组中符合条件的第一个元素,否则就返回undefined
let a = [1,2,3,4,5];
let b = a.find(item => item > 2);
console.log(b) // 3
传入一个回调函数,找到数组中符合搜索规则的第一个元素,返回它并终止搜索
const arr = [1, "2", 3, 3, "2"]
console.log(arr.find(item => typeof item === "number")) // 1
2,Array.findIndex(callback)
这个方法是返回数组中符合条件的第一个元素的索引值,否则就返回-1
let a = [1,2,3,4,5];
let b = a.findIndex(item => item > 2);
console.log(b) // 2 符合条件的为元素3 它的索引为2
找到数组中符合规则的第一个元素,返回它的下标
const arr = [1, "2", 3, 3, "2"]
console.log(arr.findIndex(item => typeof item === "number")) // 0
3,Array.includes(item, finIndex)
includes(),判断数组是否存在有指定元素,参数:查找的值(必填)、起始位置,
可以替换 ES5 时代的 indexOf 判断方式。indexOf 判断元素是否为 NaN,会判断错误。
var a = [1, 2, 3];
let bv = a.includes(2); // true
let cv = a.includes(4); // false
4,...扩展运算符
可以很方便的帮我们实现合并两个数组
let a = [1,2,3];
let b = [4,5,6];
let c = [...a,...b];
console.log(c) // [1,2,3,4,5,6];
网友评论