前端开发中,经常用到JavaScript数组操作,本文以是否改变原数组作分类。
以下为个人总结,当做api直接拿来用的,验证过,不上过多的代码或结果,伙伴们可以自己去验证。
一、不改变原数组的方法
concat()
: 连接数组,返回新的数组。- slice(): 截取数组,以索引为届,左闭右开。
- split(): 把一个字符串分割成字符串数组。如: ‘a&b&c’.split("&") ==> [a,b,c]
join()
: 将数组内的元素用某个符号连接起来。如:[a,b,c].join("-") ==> “a-b-c”toString()
: 直接把数组转为字符串格式,逗号分开。效果同 arr.join(",")ES6中的解构
: newArr=[…a,…b],可以连接若干个数组,原数组不改变。
二、改变原数组的方法
原数组经过这些方法操作之后得到的新结果,即为原数组本身。
push()
: 在数组末尾追加一个元素,返回数组长度。pop()
: 在数组末尾删除一个元素,返回被去掉的元素。length末尾追加
: 在数组末尾追加元素的另一种方法,即arr[arr.length],返回被添加的元素。unshift()
: 在数组头部添加一个元素,返回添加的元素。shift()
: 在数组头删除一个元素,返回被删除的元素。- splice(): 用于在指定位置添加、删除、替换元素。
(1)删除 arr.splice(index,len)
: 从索引index处(包括index,该方法都包括index本身,后面不赘述),删除长度为len个元素,返回被删除的元素组成的数组。若只写了index,没有第二个参数,则从index处开始删除后面所有元素。
(2)添加 arr.splice(index,0,...items)
: 从index处添加若干元素,返回[ ]空数组。(可以理解为被替换的元素是空)arr.splice(arr.length,0,…[1,2,3]): 连接数组,在末尾追加一个数组[1,2,3]给原数组。
(3)替换 arr.splice(index,len,...items)
: 从索引index开始,替换 len 个元素,用 items 去代替。若len超过了要替换的元素,则后面多余的全部被删除。返回被替换的元素组成的数组。 sort()
: 排序方法,按字符串顺序升序排的。正确顺序(升序): arr.sort((a,b)=>a-b),当a-b返回负值时,函数会把a排序为比100更小的值。如 10-20= -10reverse()
: 反转数组,颠倒原来的顺序,返回改变后的新数组。Array.prototype.push.apply(arr1,arr2)
: 在原型上连接数组,将arr2连接在arr1的尾部,参数只能为2个,多了无效。返回数组长度,arr1被改变,arr2不变。 arr1.push.apply(arr1,arr2) 效果相同。
文档持续维护,若有不妥之处,望大家指正或补充。