JS常用数组 API

数组(Array)是 JavaScript 中最常用的数据结构之一。它可以包含任意类型的值,并可以通过索引访问和修改数组元素。在实际开发中,我们常常需要对数组进行增删改查等操作。下面介绍常用的 20 个数组 API。

push()

push() 方法将一个或多个元素添加到数组的末尾,并返回修改后的数组长度。以下是示例代码:

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

pop()

pop() 方法从数组中移除并返回最后一个元素。以下是示例代码:

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

concat()

concat() 方法将两个或多个数组合并成一个新数组。以下是示例代码:

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

join()

join() 方法将数组中的所有元素转换为字符串,并使用指定的分隔符将它们连接在一起。以下是示例代码:

const arr = ['a', 'b', 'c'];
const str = arr.join('-');
console.log(str); // 'a-b-c'

reverse()

reverse() 方法反转数组中元素的顺序,并返回修改后的数组。以下是示例代码:

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

shift()

shift() 方法从数组中移除并返回第一个元素。以下是示例代码:

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

slice()

slice() 方法返回数组的一个切片,即从指定开始位置到指定结束位置之间的元素。以下是示例代码:

const arr = [1, 2, 3, 4, 5];
const slice1 = arr.slice(1, 3);
const slice2 = arr.slice(-2);
console.log(slice1); // [2, 3]
console.log(slice2); // [4, 5]

sort()

sort() 方法按字母顺序对数组进行排序,或者根据指定的排序规则进行排序。以下是示例代码:

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

const arr2 = ['banana', 'apple', 'orange'];
arr2.sort();
console.log(arr2); // ['apple', 'banana', 'orange']

const arr3 = ['banana', 'apple', 'orange'];
arr3.sort((a, b) => a.localeCompare(b));
console.log(arr3); // ['apple', 'banana', 'orange']

splice()

splice() 方法在指定位置添加、移除或替换一个或多个元素,并返回被移除的元素组成的数组。以下是示例代码:

const arr = [1, 2, 3, 4];
const removed = arr.splice(1, 2, 5, 6);
console.log(arr); // [1, 5, 6, 4]
console.log(removed); // [2, 3]

toString()

toString() 方法将数组转换为字符串,并返回结果。以下是示例代码:

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

unshift()

在JavaScript数组中,unshift() 方法用于在数组的开头添加一个或多个元素。其语法如下所示:

array.unshift(element1[, ...[, elementN]])

其中,array表示要操作的数组;element1到elementN表示要添加的元素。

下面是一个代码示例:

let fruits = ['apple', 'banana', 'orange'];
fruits.unshift('pear', 'grape');
console.log(fruits); // ['pear', 'grape', 'apple', 'banana', 'orange']

indexOf()

在JavaScript数组中,indexOf() 方法用于在数组中查找指定元素的位置。它返回指定元素在数组中第一次出现的位置。其语法如下所示:

array.indexOf(searchElement[, fromIndex])

其中,array表示要操作的数组;searchElement表示要查找的元素;fromIndex是指在哪个索引处开始查找。

下面是一个代码示例:

let fruits = ['apple', 'banana', 'orange', 'apple'];
console.log(fruits.indexOf('apple')); // 0
console.log(fruits.indexOf('orange')); // 2
console.log(fruits.indexOf('pear')); // -1

lastIndexOf()

在JavaScript数组中,lastIndexOf() 方法用于在数组中查找指定元素的最后一个位置。它返回指定元素在数组中最后一次出现的位置。其语法如下所示:

array.lastIndexOf(searchElement[, fromIndex])

其中,array表示要操作的数组;searchElement表示要查找的元素;fromIndex是指在哪个索引处开始查找。

下面是一个代码示例:

let fruits = ['apple', 'banana', 'orange', 'apple'];
console.log(fruits.lastIndexOf('apple')); // 3
console.log(fruits.lastIndexOf('orange')); // 2
console.log(fruits.lastIndexOf('pear')); // -1

filter()

在JavaScript数组中,filter() 方法用于返回符合指定条件的元素数组。其语法如下所示:

array.filter(callback[, thisArg])

其中,array表示要操作的数组;callback是一个函数,用来测试数组中的每个元素;thisArg是执行函数callback时使用的this值。callback函数的返回值为true或false,当返回值为true时,对应的元素会被包含在返回的数组中。

下面是一个代码示例:

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let evenNumbers = numbers.filter(function(element) {
    return element % 2 === 0;
});
console.log(evenNumbers); // [2, 4, 6, 8, 10]

map()

在JavaScript数组中,map() 方法用于返回由回调函数处理原数组中的每个元素组成的新数组。其语法如下所示:

array.map(callback[, thisArg])

其中,array表示要操作的数组;callback是一个函数,用来操作数组中的每个元素;thisArg是执行函数callback时使用的this值。callback函数返回的所有值会组成一个新数组。

下面是一个代码示例:

let numbers = [1, 2, 3, 4, 5];
let squareNumbers = numbers.map(function(element) {
    return element * element;
});
console.log(squareNumbers); // [1, 4, 9, 16, 25]

reduce()

reduce()是JavaScript中最常用的数组方法之一。它可以将一个数组中的所有元素累加、计算或拼接为单个值,具体取决于传递给它的回调函数。reduce()方法需要两个参数,第一个参数是回调函数,第二个参数是初始值(也可以省略,此时初始值为第一个元素的值)。

回调函数接收四个参数:

  • 累加器:初始值或上一次回调返回值。
  • 当前元素:正在处理的当前元素。
  • 当前索引:正在处理的当前元素的索引。
  • 原始数组:调用reduce()方法的原始数组。

在下面的代码示例中,我们使用reduce()方法将一个数组中的所有元素相加:

const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue);
console.log(sum); // 15

find()

find()方法用于返回数组中符合指定条件的第一个元素。它需要一个回调函数作为参数,该函数接收三个参数:

  • 当前元素:正在处理的当前元素。
  • 当前索引:正在处理的当前元素的索引。
  • 原始数组:调用find()方法的原始数组。

回调函数必须返回一个布尔值,如果返回值为true,则find()方法会返回该元素的值。

在下面的示例中,我们使用find()方法查找一个数组中的第一个偶数值:

const numbers = [1, 3, 5, 2, 4];
const firstEvenNumber = numbers.find((number) => number % 2 === 0);
console.log(firstEvenNumber); // 2

some()

some()方法与find()方法类似,但some()方法用于检查数组中是否存在符合指定条件的元素。它也需要一个回调函数作为参数,该函数接收三个参数:

  • 当前元素:正在处理的当前元素。
  • 当前索引:正在处理的当前元素的索引。
  • 原始数组:调用some()方法的原始数组。

回调函数必须返回一个布尔值,如果返回值为true,则some()方法会返回true。

在下面的示例中,我们使用some()方法检查数组中是否存在大于10的值:

const numbers = [1, 3, 5, 12, 7];
const isGreaterThanTen = numbers.some((number) => number > 10);
console.log(isGreaterThanTen); // true

every()

every()方法与some()方法类似,但它用于检查数组中的所有元素是否符合指定条件。它也需要一个回调函数作为参数,该函数接收三个参数:

  • 当前元素:正在处理的当前元素。
  • 当前索引:正在处理的当前元素的索引。
  • 原始数组:调用every()方法的原始数组。

回调函数必须返回一个布尔值,如果返回值为false,则every()方法会返回false。

在下面的示例中,我们使用every()方法检查数组中是否所有值都大于0:

const numbers = [1, 3, 5, 12, 7];
const isAllPositive = numbers.every((number) => number > 0);
console.log(isAllPositive); // true

includes()

includes()方法用于检查数组中是否包含指定元素。该方法返回一个布尔值,如果数组包含指定元素,则返回true,否则返回false。

includes()方法需要一个参数,即要查找的元素。在使用该方法时,可以指定可选参数start,该参数表示开始查找的位置。如果未指定该参数,则默认从数组的第一个元素开始查找。

下面是一个示例代码,该代码演示了如何使用includes()方法来确定数组中是否包含指定元素:

const fruits = ['apple', 'banana', 'orange', 'mango'];
const hasBanana = fruits.includes('banana');
console.log(hasBanana); // true
const hasWatermelon = fruits.includes('watermelon');
console.log(hasWatermelon); // false

在上面的代码中,我们首先定义了一个名为fruits的数组,包含了几种水果。然后,我们使用includes()方法来检查该数组中是否存在banana和watermelon两种水果。检查结果表明,数组中确实包含banana,但不包含watermelon。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值