1push()
功能: push 从数组尾部添加一个或多个元素, 并返回数组新的长度;
输入: push 输入为插入的元素;
输出: 数组的 push 操作之后的长度;
- var arr = [1, 2, 3];
- arr.push(4, 5);// =>arr:[1, 2, 3, 4, 5], 返回 5
- 2pop()
功能: 返回最后一个元素
输入: 输入为空
输出: 返回的数组元素
- var arr = [1, 2, 3, 4, 5];
- app.pop();// =>arr:[1, 2, 3, 4], 返回 5
3unshift()类似于 push(), 不同的是 unshift()是从数组的头部插入;
- var arr = [1, 2, 3, 4];
- arr.unshift(-1, 0);// =>arr:[-1, 0, 1, 2, 3, 4], 返回 6
4shift()类似于 pop(), 不同的是 shift()是从数组的头部删除;
- var arr = [1, 2, 3, 4];
- arr.shift();// =>arr:[2, 3, 4], 返回 1
- 5join()
功能: 将数组中所有元素都转化为字符串并连接在一起
输入: 分隔符, 默认为逗号
输出: 分隔符分割的字符串
- var arr = [1, 2, 3, 4];
- arr.join();// => '1,2,3,4'
- arr.join(';');// => '1;2;3;4'
- 6reverse()
功能: 将数组中的元素颠倒顺序
输入: 无
输出: 逆序的数组
- var arr = [1, 2, 3];
- arr.reverse();// =>[3, 2, 1]
- 7sort()
功能: 将数组中的元素进行排序
输入: 比较函数或 nullnull 时表示按照字母表顺序排序; 传入带两个参数的比较函数时; 第一个参数在前, 则返回小于 0 的数值(升序); 第一个参数在后, 则返回大于 0 的数组(降序)
输出: 排序后数组
注意: 改变了原数组
- var arr = [111, 22, 3, 444];
- arr.sort();// =>arr:[111, 22, 3, 444]
- arr.sort(function(a, b) {
- return a - b;
- });// =>arr:[3, 22, 111, 444]
- arr.sort(function(a, b) {
- return b - a;
- });// =>arr:[444, 111, 22, 3]
- 8concat()
功能: 数组拼接的功能
输入: 待拼接的元素; 如果参数中有数组, 则连接的是数组元素, 而非数组本身; 但是不支持递归, 不修改调用的数组
输出: 拼接后的新数组
注意: 新建的数组, 原数组不改变
- var arr = [1, 2, 3];
- arr.concat(4, 5) // =>[1, 2, 3, 4, 5]
- arr.concat([4, 5]) // =>[1, 2, 3, 4, 5]
- arr.concat(4, [5, [6, 7]]) //[1, 2, 3, 4, 5, [6, 7]]
- 9slice()
功能: 获取原数组的片段或子数组
输入: 片段的开始和结束
输出: 返回的数组包含第一个参数指定的位置和所有到但不含第二个参数指定位置之间的所有元素如果为负数, 表示相对于数组中最后一个元素的位置
注意: 新建的数组, 原数组不改变
- var arr = [1, 2, 3, 4, 5];
- arr.slice(0, 3);// =>[1, 2, 3]
- arr.slice(3);// =>[4, 5]
- arr.slice(1, -1);// =>[2, 3, 4]
- 10splice()
功能: 从数组中删除元素插入元素到数组中或者同事完成这两种操作
输入: 第一个参数为指定插入或删除的起始位置, 第二个参数为要删除的个数之后的参数表示需要插入到数组中的元素
输出: 返回一个由删除元素组成的数组
注意: 新建了一个数组, 并修改了原数组
- var arr = [1, 2, 3, 4, 5, 6, 7, 8];
- arr.splice(4) // =>[5, 6, 7, 8]; arr: [1, 2, 3, 4]
- arr.splice(2, 0, 'a', 'b') // =>[]; arr: [1, 2, a, b, 3, 4]
11toString()和 toLocaleString()
功能: 将数组的每个元素转化为字符串, 并且输入用逗号分隔的字符串列表, 功能类似 join();
输入: 无
输出: 字符串
- [1, 2, 3].toString(); // =>'1,2,3'
- 12forEach()
功能: 从头至尾遍历数组, 为每个元素调用指定函数
输入: 输入为一个待遍历函数, 函数的参数依次为: 数组元素元素的索引数组本身
输出: 只是执行了遍历函数, 无特定返回
- var data = [1, 2, 3, 4, 5];
- data.forEach(function(v, i, a){a[i] = v + 1;});
- console.log(data); // =>[2, 3, 4, 5, 6]
- 13map()
功能: 调用的数组的每一个元素传递给指定的函数, 并返回一个新数组
输入: 和 forEach 一样
输出: 执行完函数的新数组
注意: 返回新数组, 不修改原数组
- var arr = [1, 2, 3];
- var b = a.map(function(x) {return x * x;}); // b => [1,4,9]
- 14filter()
功能: 将数组元素执行特定函数, 而返回一个子集
输入: 执行逻辑判断的函数, 该函数返回 true 或 false, 参数类似 forEach 和 map()
输出: 如果执行输入函数返回值为 true, 则传递给判定函数的元素是这个子集的成员
- var a = [5, 4, 3, 2, 1];
- var smallvalues = a.filter(function(x) {return x <3});// smallvalues =>[2, 1]
- 15every()
功能: 对数组元素进行指定函数的逻辑判断, 数组所有元素成立才为真, 否者为假
输入: 特定函数
输出: true 或者 false
- var arr = [1, 2, 3, 4, 5];
- arr.every(function(x) {return x <10;}); // =>true
- 16some()
功能: 对数组元素进行指定函数的逻辑判断, 只要有一个为真, 结果即为真, 否则为假
输入: 特定函数
输出: true 或者 false
- var arr = [1, 2, 3, 4, 5];
- arr.some(function(x) {return x <3;}) // =>true
17reduce()和 reduceRight()
功能: 使用指定的函数将数组元素进行组合, 生成单个值
输入: 两个参数, 第一个是执行化简操作的函数第二个 (可选) 的参数是一个传递给函数的初始值
注意: 执行化简的函数的第一个参数为目前为止化简操作累积的结果
18indexOf()和 lastIndexOf()
功能: 搜索整个数组中具有给定值得元素, 返回找到的第一个元素的索引或者如果没有找到就返回 - 1.lastIndexOf 为反向搜索
输入: 元素的值
输入: 索引值
19Array.from()
功能: 将两类对象转为真正的数组: 类似数组的对象和可遍历的对象
输入: 待转换的对象, 第二个参数可选, 作用类似于数组的 map 方法, 用来对每个元素进行处理, 将处理后的值放入返回的数组
输出: 数组
- let arrayLike = {
- '0':'a',
- '1':'b',
- '2':'c',
- length:3
- };
- let arr2 = Array.from(arrayLike);// =>['a', 'b', 'c']
- 20Array.of()
功能: 将一组值, 转换为数组
输入: 数组元素
输出: 数组
- Array.of(1, 2, 3)// =>[1, 2, 3]
- Array.of(1)// =>[1]
- 21copyWithin()
功能: 在当前数组内部, 将指定位置的成员复制到其他位置, 返回当前数组
输入: 第一个参数(从该位置开始替换数据); 第二个参数可选(从该位置开始读取数据, 默认为 0, 负值表示倒数); 第三个参数(到该位置前停止读取, 默认为数组长度)
输出: 返回当前替换后的数组
注意: 改变了当前数组
[1, 2, 3, 4, 5].copyWithin(0, 3) //=> [4, 5, 3, 4, 5]
22find()和 findIndex()
功能: 找到第一个符合条件的数组成员
输入: 回调函数, 所有数组成员依次执行该函数, 直到找到第一个返回值为 true 的成员回调函数可以接受三个参数, 依次为值, 位置, 原数组
输出: find()返回找到的成员; findIndex()返回成员的位置
- [1,5,10,15].find(function(value,index,arr){
- return value> 9;
- })// =>10
- 23fill()
功能: 使用给定的值, 填充一个数组
输入: 第一个参数为待填充的值, 第二和第三参数可选, 分别表示填充的起始和结束位置(不包括)
输出: 填充后的数组
- ['a', 'b', 'c'].fill(7, 1, 2); // =>['a', 7, 'c']
- 24entries()keys()values()
功能: 用于遍历数组, 可以用 forof 循环进行遍历区别是 keys()是对键名的遍历 values 是对键值的遍历 entries()是对键值对的遍历
输入: 无
输出: 遍历器对象
- for (let index of ['a', 'b'].keys()) {
- console.log(index);
- }
- // =>0
- // =>1
- for (let elem of['a', 'b'].values()) {
- console.log(elem);
- }
- // =>'a'
- // =>'b'
- for (let[index, elem] of['a', 'b'].entries()) {
- console.log(index, elem);
- }
- // =>0 "a"
- // =>1 "b"
- 25includes()
功能: 表示某个数组是否包含给定的值
输入: 第一个参数必选(待检查的给定值), 第二个参数可选, 表示搜索的起始位置, 默认为 0, 负数表示倒数的位置
输出: 一个布尔值
注意: 和 indexOf 的区别, indexOf 进行了运算符的强比对, 会导致对 NaN 误判
- [1, 2, 3].includes(2); // true
- [1, 2, 3].includes(4); // false
- [1, 2, NaN].includes(NaN); // true
来源: http://www.qdfuns.com/note/40690/c54756ee82a8b0473321cfd1176b16d7.html