let arr = [a,b,c]
修改原数组
|
| 在数组末尾添加一个或多个元素 | 新数组长度 | arr.push('a') → 返回 4 (原数组长度+1) |
pop() | 删除数组最后一个元素 | 被删除的元素 | arr.pop() → 返回 'c' |
shift() | 删除数组第一个元素 | 被删除的元素 | arr.shift() → 返回 'a' |
unshift() | 在数组开头添加一个或多个元素 | 新数组长度 | arr.unshift('x') → 返回 4 |
splice() | 删除/替换/插入元素 | 被删除元素的数组 | arr.splice(1, 2, 'y') → 删除从索引1开始的2个元素,插入 'y' |
reverse() | 反转数组元素顺序 | 修改后的原数组 | [1, 2].reverse() → [2, 1] |
sort() | 对数组元素排序 | 修改后的原数组 | [3, 1].sort((a,b) => a - b) → [1, 3] |
copyWithin() | 复制数组内部的一部分到同一数组的其他位置(ES6) | 修改后的原数组 | [1,2,3].copyWithin(0, 2) → [3,2,3] |
fill() | 用固定值填充数组元素(ES6) | 修改后的原数组 | new Array(3).fill(0) → [0,0,0] |
返回新数组
concat() | 合并多个数组 | [1].concat([2], [3]) → [1,2,3] |
slice() | 返回数组的浅拷贝部分 | [1,2,3].slice(1,3) → [2,3] |
flat() | 将嵌套数组扁平化(ES2019) | [1, [2]].flat() → [1,2] |
flatMap() | 先执行 map() 再执行 flat(1)(ES2019) | [1,2].flatMap(x => [x*2]) → [2,4] |
map() | 对每个元素执行函数,返回新数组 | [1,2].map(x => x*2) → [2,4] |
filter() | 筛选符合条件的元素 | [1,2,3].filter(x => x>1) → [2,3] |
迭代方法
forEach() | 遍历每个元素 | undefined | [1,2].forEach(x => console.log(x)) |
every() | 检查所有元素是否满足条件 | 布尔值 | [1,2].every(x => x>0) → true |
some() | 检查是否有元素满足条件 | 布尔值 | [1,2].some(x => x>1) → true |
find() | 返回第一个符合条件的元素(ES6) | 元素或 undefined | [1,2].find(x => x>1) → 2 |
findIndex() | 返回第一个符合条件的元素索引(ES6) | 索引或 -1 | [1,2].findIndex(x => x>1) → 1 |
findLast() | 从右向左查找第一个符合条件的元素(ES2023) | 元素或 undefined | [1,2,3].findLast(x => x%2===1) → 3 |
findLastIndex() | 从右向左查找第一个符合条件的元素索引(ES2023) | 索引或 -1 | [1,2,3].findLastIndex(x => x%2===1) → 2 |
reduce() | 从左到右累计处理元素 | 累计值 | [1,2].reduce((sum, x) => sum + x, 0) → 3 |
reduceRight() | 从右到左累计处理元素 | 累计值 | [1,2].reduceRight((sum, x) => sum + x, 0) → 3 |
其他方法
join() | 将数组元素连接为字符串 | 字符串 | [1,2].join('-') → '1-2' |
includes() | 判断数组是否包含某个值(ES6) | 布尔值 | [1,2].includes(2) → true |
indexOf() | 返回元素第一次出现的索引 | 索引或 -1 | [1,2].indexOf(2) → 1 |
lastIndexOf() | 返回元素最后一次出现的索引 | 索引或 -1 | [1,2,2].lastIndexOf(2) → 2 |
keys() | 返回包含数组索引的迭代器(ES6) | 迭代器 | [...['a','b'].keys()] → [0,1] |
values() | 返回包含数组元素的迭代器(ES6) | 迭代器 | [...['a','b'].values()] → ['a','b'] |
entries() | 返回包含键值对的迭代器(ES6) | 迭代器 | [...['a','b'].entries()] → [[0,'a'], [1,'b']] |
toReversed() | 返回反转后的新数组(不修改原数组,ES2023) | 新数组 | [1,2].toReversed() → [2,1] |
toSorted() | 返回排序后的新数组(不修改原数组,ES2023) | 新数组 | [3,1].toSorted((a,b) => a - b) → [1,3] |
toSpliced() | 返回修改后的新数组(不修改原数组,ES2023) | 新数组 | [1,2,3].toSpliced(1,1) → [1,3] |
with() | 返回修改指定索引值后的新数组(不修改原数组,ES2023) | 新数组 | [1,2,3].with(1, 9) → [1,9,3] |
静态方法
Array.from() | 将类数组或可迭代对象转为数组(ES6) | Array.from('abc') → ['a','b','c'] |
Array.of() | 创建包含任意数量元素的数组(ES6) | Array.of(1,2,3) → [1,2,3] |
Array.isArray() | 判断是否为数组 | Array.isArray([]) → true |

被折叠的 条评论
为什么被折叠?



