Javscript 数组的常用方法有哪些?
一、增删元素(直接修改原数组)
-
push(元素)
- 动作:像排队,往队伍末尾加人。
- 例子:
let arr = [1, 2, 3]; arr.push(4); // arr变成 [1, 2, 3, 4]
-
pop()
- 动作:队伍末尾的人离开。
- 例子:
arr.pop(); // 移除4,arr变回 [1, 2, 3]
-
unshift(元素)
- 动作:往队伍最前面插队。
- 例子:
arr.unshift(0); // arr变成 [0, 1, 2, 3]
-
shift()
- 动作:队伍最前面的人离开。
- 例子:
arr.shift(); // 移除0,arr变回 [1, 2, 3]
-
splice(开始位置, 删除个数, 新元素...)
- 动作:在指定位置删旧人、加新人。
- 例子:
arr.splice(1, 1, 'a', 'b'); // 从索引1开始,删除1个元素(2),加入'a'和'b' // arr变成 [1, 'a', 'b', 3]
二、遍历和转换(不修改原数组,返回新结果)
-
map(回调函数)
- 动作:把每个元素加工后,组成新数组。
- 例子:
let nums = [1, 2, 3]; let doubles = nums.map(num => num * 2); // [2, 4, 6]
-
filter(回调函数)
- 动作:筛出符合条件的元素。
- 例子:
let numbers = [1, 5, 12, 8]; let bigNumbers = numbers.filter(num => num > 10); // [12]
-
find(回调函数)
- 动作:找到第一个符合条件的元素。
- 例子:
let users = [{id:1}, {id:2}, {id:3}]; let user = users.find(u => u.id === 2); // {id: 2}
-
forEach(回调函数)
- 动作:遍历每个元素,但不像
map
返回新数组。 - 例子:
let arr = [1, 2, 3]; arr.forEach(item => console.log(item)); // 依次打印1,2,3
- 动作:遍历每个元素,但不像
三、检查与判断
-
some(回调函数)
- 动作:检查数组中是否有至少一个符合条件的元素。
- 例子:
let hasEven = [1, 3, 5, 4].some(num => num % 2 === 0); // true(因为4是偶数)
-
every(回调函数)
- 动作:检查是否所有元素都符合条件。
- 例子:
let allEven = [2, 4, 6].every(num => num % 2 === 0); // true
-
includes(元素)
- 动作:判断数组是否包含某个元素(简单值)。
- 例子:
let pets = ['猫', '狗', '鸟']; pets.includes('狗'); // true
四、拼接与合并
-
concat(数组)
- 动作:把两个数组拼接到一起,返回新数组。
- 例子:
let arr1 = [1, 2]; let arr2 = [3, 4]; let combined = arr1.concat(arr2); // [1, 2, 3, 4]
-
join(分隔符)
- 动作:把数组元素用分隔符连成字符串。
- 例子:
let words = ['Hello', 'World']; words.join(' '); // "Hello World"
五、其他常用方法
-
slice(开始位置, 结束位置)
- 动作:切出数组的一部分,原数组不变。
- 例子:
let arr = [1, 2, 3, 4]; let part = arr.slice(1, 3); // [2, 3]
-
reverse()
- 动作:把数组倒过来。
- 例子:
let arr = [1, 2, 3]; arr.reverse(); // [3, 2, 1]
-
sort(回调函数)
- 动作:排序(默认按字符串Unicode排序)。
- 例子:
let nums = [3, 1, 2]; nums.sort((a, b) => a - b); // [1, 2, 3](从小到大)
-
reduce(回调函数, 初始值)
- 动作:从左到右累计计算(比如求和)。
- 例子:
let sum = [1, 2, 3].reduce((total, num) => total + num, 0); // 6
总结表格
方法 | 作用 | 是否修改原数组 | 返回值 |
---|---|---|---|
push | 末尾添加元素 | ✔️ | 新长度 |
pop | 移除末尾元素 | ✔️ | 被移除的元素 |
unshift | 开头添加元素 | ✔️ | 新长度 |
shift | 移除开头元素 | ✔️ | 被移除的元素 |
splice | 删除/替换元素 | ✔️ | 被删除的元素数组 |
map | 加工每个元素,返回新数组 | ❌ | 新数组 |
filter | 过滤符合条件的元素 | ❌ | 新数组 |
find | 找第一个符合条件的元素 | ❌ | 元素或undefined |
forEach | 遍历执行操作 | ❌ | undefined |
slice | 切片 | ❌ | 新数组 |
concat | 合并数组 | ❌ | 新数组 |