JavaScript Array常用方法

662 阅读2分钟

不改变原数组:

  • concat()
  • join()
  • slice()
  • flat()
  • toString()

改变原数组:

  • pop()
  • push()
  • reverse()
  • shift()
  • unshift()
  • sort()
  • splice()

不改变原数组:

array.concat(array)

连接两个或多个数组 返回被连接数组的一个副本

[1,2].concat([3,4])
// expected output: "[1,2,3,4]"

join(string)

把数组中所有元素放入一个字符串 返回字符串

['Fire', 'Air', 'Water'].join('')
// expected output: "FireAirWater"

slice(begin[, end])

从已有的数组中返回选定的元素 返回一个新数组

['ant', 'bison', 'camel', 'duck', 'elephant'].slice(2, 4)
// expected output: Array ["camel", "duck"]

flat()

拍平数组,默认仅拍平一维

var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]

//使用 Infinity,可展开任意深度的嵌套数组
var arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
arr4.flat(Infinity);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

toString()

把数组转为字符串 返回数组的字符串形式

[1,2].toString()
// expected output: "1,2"

改变原数组:

pop()

删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined 返回被删除的元素

push()

向数组末尾添加一个或多个元素 返回新数组的长度

reverse()

颠倒数组中元素的顺序 返回该数组

shift()

把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined 返回第一个元素的值

unshift()

向数组的开头添加一个或多个元素 返回新数组的长度

sort([compareFunction])

compareFunction:用来指定按某种顺序进行排列的函数。 省略则对数组元素进行(ascii)排序 返回该数组

let numbers = [4, 2, 5, 1, 3]
numbers.sort((a, b) => a - b) // return > 0, a <=> b
// [1, 2, 3, 4, 5]

splice(start[, deleteCount[, item1[, item2[, ...]]]])

从数组中添加/删除项目 返回被删除的元素

let months = ['Jan', 'March', 'April', 'June'];
// 插入
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ['Jan', 'Feb', 'March', 'April', 'June']

// 替换
months.splice(4, 1, 'May','Lili');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May", "Lili"]

// 删除
months.splice(4, 2);
// delete 2 element start at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April"]