1. 改变原数组的方法

    • push:向数组末尾添加一个或多个元素。
    • pop:从数组末尾删除一个元素。
    • shift:从数组开头删除一个元素。
    • unshift:向数组开头添加一个或多个元素。
    • splice:可以在任意位置添加或删除元素。
    • reverse:反转数组中元素的顺序。
    • sort:对数组的元素进行排序。
    • fill:用指定的值填充数组的某部分。
  2. 不改变原数组的方法

    • slice:返回数组的某个部分,生成一个新数组。
    • concat:合并两个或多个数组,返回一个新数组。
    • join:将数组的所有元素连接成一个字符串。
    • map:对数组的每个元素执行给定的函数,返回一个新数组。
    • forEach:对数组的每个元素执行给定的函数,没有返回值。
    • reduce:对数组的每个元素执行给定的函数,最终计算出一个值。
    • filter:筛选数组中的元素,返回满足条件的元素的新数组。
    • find:返回数组中第一个满足条件的元素。
    • includes:判断数组是否包含某个元素。
    • some:判断数组中至少有一个元素满足条件。
    • every:判断数组中的所有元素是否都满足条件。

push():向数组末尾添加一个或多个元素,返回新数组的长度

const arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1, 2, 3, 4]

pop():移除数组末尾的元素,并返回该元素

const arr = [1, 2, 3];
const lastElement = arr.pop();
console.log(lastElement); // 3
console.log(arr); // [1, 2]

shift():移除数组开头的元素,并返回该元素

const arr = [1, 2, 3];
const firstElement = arr.shift();
console.log(firstElement); // 1
console.log(arr); // [2, 3]

unshift():向数组开头添加一个或多个元素,返回新数组的长度

const arr = [2, 3];
arr.unshift(1);
console.log(arr); // [1, 2, 3]

splice():从数组中添加或删除元素,返回被删除的元素。可以添加多个元素到指定位置

const arr = [1, 2, 3, 4];
const removed = arr.splice(1, 2, 5, 6); // 从索引1开始删除2个元素,并插入5和6
console.log(arr); // [1, 5, 6, 4]
console.log(removed); // [2, 3]

slice():返回数组的一个片段,复制数组的一部分,并返回新数组

const arr = [1, 2, 3, 4];
const sliced = arr.slice(1, 3); // 从索引1到索引3(不包括3)
console.log(sliced); // [2, 3]

concat():用于合并两个或多个数组,返回一个新数组

const arr1 = [1, 2];
const arr2 = [3, 4];
const combined = arr1.concat(arr2);
console.log(combined); // [1, 2, 3, 4]

join():将数组的所有元素连接成一个字符串,返回连接后的字符串

const arr = ['Hello', 'World'];
const str = arr.join(' '); // 用空格连接
console.log(str); // "Hello World"

reverse():反转数组中的元素顺序

const arr = [1, 2, 3];
arr.reverse();
console.log(arr); // [3, 2, 1]

sort():对数组元素进行排序

const arr = [3, 1, 4, 2];
arr.sort(); // 默认按字符排序
console.log(arr); // [1, 2, 3, 4]

arr.sort((a,b)=>b-a); // 逆序排序
console.log(arr); // [4, 3, 2, 1]

map():用于对数组中的每个元素执行一个函数,并返回一个新数组

const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6]

forEach():遍历数组中的每个元素,并对每个元素执行一个指定的函数,不返回新数组

const colors = ['red', 'green', 'blue'];
colors.forEach(color => console.log(color));

reduce():用于对数组进行累积操作,它可以用来求和、求积、统计元素出现次数、数组去重等

/**
 * 参数一: callback 函数(执行数组中每个值的函数,包含四个参数):
 *    prev 必需 (上一次调用回调返回的值,或者是提供的初始值(initialValue))
 *    cur 必需(数组中当前被处理的元素)
 *    index 可选 (当前元素在数组中的索引)
 *    arr 可选 (调用 reduce 的数组)
 * 参数二:initialValue 可选 (表示初始值,作为第一次调用 callback 的第一个参数。)
 *    提供初始值,cur 从数组第一项开始,若不提供初始值,则 cur 从第二项开始执行,对应的第一次 prev 是数组第一项的值
 */
 
// arr.reduce(callback,[initialValue])
array.reduce((prev, cur, index, arr)=> {
    /***/
}, initialValue)

// 例子
let list = [1,2,3,4];
list = list.reduce((pre,cur)=>{
    pre.push(cur+1);
    return pre;
},list);
console.log(list); // [1, 2, 3, 4, 2, 3, 4, 5]

fill():用于用静态值填充数组的整个或一部分,用于需要创建一个填充特定值的数组时

/**
 * value:要填充的值。
 * start(可选):填充开始的索引(默认是 0)。
 * end(可选):填充结束的索引(默认是数组的长度)。
*/

// 创建一个长度为 5 的数组,全部填充为 0
let array1 = new Array(5).fill(0);
console.log(array1); // 输出:[0, 0, 0, 0, 0]

// 填充部分数组
let array2 = [1, 2, 3, 4, 5];
array2.fill(0, 1, 3); // 从索引 1 到 2 填充为 0
console.log(array2); // 输出:[1, 0, 0, 4, 5]

// 使用非基础数据类型
let array3 = new Array(3).fill({name: 'Fitten'});
console.log(array3); // 输出:[ {name: 'Fitten'}, {name: 'Fitten'}, {name: 'Fitten'} ]

// 如果修改其中一个对象,其他对象也会受到影响(可以改为使用map处理)
array3[0].name = 'Code Assistant';
console.log(array3); // 输出:[ {name: 'Code Assistant'}, {name: 'Code Assistant'}, {name: 'Code Assistant'} ]

filter():创建一个新数组,包含所有通过测试的元素

const numbers = [1, 2, 3, 4, 5];
const evens = numbers.filter(num => num % 2 === 0);
console.log(evens); // [2, 4]

find():返回数组中满足提供的测试函数的第一个元素的值

const numbers = [1, 2, 3, 4, 5];
const found = numbers.find(num => num > 3);
console.log(found); // 4

includes():判断一个数组是否包含某个指定的值,如果包含,则返回 true,否则返回 false

const fruits = ['apple', 'banana', 'mango'];

// 检查数组中是否包含特定的元素
const hasBanana = fruits.includes('banana');
console.log(hasBanana); // true

const hasOrange = fruits.includes('orange');
console.log(hasOrange); // false

some():测试数组中是否至少有一个元素通过了指定的测试

const numbers = [1, 2, 3, 4];
const hasEven = numbers.some(num => num % 2 === 0);
console.log(hasEven); // true

every():测试数组中的所有元素是否都通过了指定的测试

const numbers = [2, 4, 6];
const allEven = numbers.every(num => num % 2 === 0);
console.log(allEven); // true
最后修改:2024 年 10 月 14 日
如果觉得我的文章对你有用,请随意赞赏