本文针对常用的数组 API 做了简单的整理。
直接修改原数组
arr.push()
- 在数组的尾部追加 1-n 个新元素;
- 参数:需要添加到数组尾部的元素;
arr.pop()
- 用于删除数组中的最后一个元素;
- 返回值:返回删除的元素;
arr.reverse()
- 用于颠倒数组中的所有元素;
arr.shift()
- 用于删除并返回数组中的第一个元素,并将后面的元素向前移动一位,并且 length-1;
- 返回值:返回被删除的数组;
arr.sort(callback)
- 对数组内的元素按照特定的规则进行排序;
- 参数:callback 用于排序规则的回调函数,默认按照第一个字符的 Uncode 编码进行排序;
arr.splice(start[ deleteCount [,val , ……])
- 可以删除指定索引的数组元素;
- 可以用于数组的元素替换;
- 可以在指定的索引位置插入新的元素,并将之前的元素向后移动;
- 参数:
- start:开始索引;
- deleteCount : 要删除的数量;
- val : 要插入到 start 位置的元素;
- 返回值:返回的是被删除的数组片段,返回类型是数组;
返回新数组
arr.concat(value[, …… , valueN])
- 用于将参数依次添加到数组尾部,并返回一个新数组;
- 参数:value 需要天骄到新数组的元素
- 返回值:添加元素后的新数组
arr.join()
- 用于将数组内所有元素进行
toString()
操作,并进行连接; - 参数:用于拼接字符串额的连接符号;
- 返回值:新的字符串,包含了数组所有元素的
toString()
结果,默认以,
连接;
arr.slice()
- 截取数组指定索引的片段;
- 参数:
- start :开始
- end:结束(可缺省,表示从 start 开始到数组结尾结束),也可以为负值;
- 返回值:截取到的数组片段;
arr.unshift()
- 用于在数组的头部有插入一条或多条数据,原数组向后移动;
- 参数:要插入到数组头部的值;
ES5 中的数组 API
arr.index(value[,start])
- 用于检索数组中的 value 值,找到返回 index;否则,返回 -1;
- 参数:在数组中需要检索的值,start:开始索引;
- 返回值:
- 存在:返回 index;
- 不存在:返回 -1;
arr.forEach(callback)
- 用于遍历数组,并将数组的每一个元素和索引值传入到回调函数中;
arr.filter(callback)
- 用于过滤数组
- 执行过程:
- 遍历数组;
- 使用逻辑表达式进行检测;
- 将所有的 true 的结果保存到一个新的数组中;
- 返回新数组;
arr.map(callback)
- 用于遍历并操作数组元素;
- 返回值:新的数组;
- 执行过程:
- 遍历数组
- 操作数组元素
- 返回新数组
arr.reduce(callback)
- 在执行第一次回调函数的时候,会将数组的元素传入到
pre
,将数组的第二个元素传入到next
,之后每一次执行pre
都是上次的return
,最后一次执行的结果是整个reduce
的返回值; - 参数:
- pre : 上一个
- next :下一个
arr.every(callback)
- 使用一个逻辑表达式,检测数组中的每个元素,全部为 true 则为 true ,否则为 false;
arr.some(callback)
- 使用一个逻辑表达式,检测数组中的每个元素,全部为 false 则为 false ,全部为 true 则为 true;