js数组的方法及运用场景

1.push(item1, item2, ..., itemN): 将一个或多个元素添加到数组的末尾,并返回修改后的数组的新长度。

2.pop(): 删除数组的最后一个元素,并返回被删除的元素。

3.shift(): 删除数组的第一个元素,并返回被删除的元素。同时,修改原始数组的长度和索引。

4.unshift(item1, item2, ..., itemN): 在数组的开头插入一个或多个元素,并返回修改后的数组的新长度。

5.concat(array1, array2, ..., arrayN): 返回一个由原始数组和一个或多个其他数组或值连接而成的新数组。

6.join(separator): 将数组中的所有元素转化为字符串,并使用指定的分隔符将它们连接起来。返回最终的字符串。

7.slice(startIndex, endIndex): 返回一个新数组,其中包含原始数组中从 startIndexendIndex(不包括 endIndex)之间的元素。

8.splice(startIndex, deleteCount, item1, item2, ..., itemN): 从数组中删除、替换或添加元素。startIndex 是开始修改的位置,deleteCount 是要删除的元素数量,item1, item2, ..., itemN 是要添加到数组的元素。

9.reverse(): 将数组中的元素顺序反转,第一个变为最后一个,最后一个变为第一个。

10.sort(compareFunction): 对数组进行原地排序,默认按照元素的字符串值进行排序。可以提供一个可选的比较函数作为参数,用于指定排序规则。

11.indexOf(searchElement, fromIndex): 返回指定元素在数组中首次出现的索引。如果没有找到该元素,则返回 -1。fromIndex 参数可选,表示搜索的起始位置。

12.lastIndexOf(searchElement, fromIndex): 返回指定元素在数组中最后一次出现的索引。如果没有找到该元素,则返回 -1。fromIndex 参数可选,表示搜索的起始位置。

13.map(callback): 创建一个新数组,其中包含对原始数组的每个元素调用指定函数后的结果。callback 函数接受三个参数:当前元素、当前元素索引和原始数组

14.forEach(callback): 对数组中的每个元素执行指定的函数。callback 函数接受三个参数:当前元素、当前元素索引和原始数组。

15.filter(callback): 创建一个新数组,其中包含所有通过指定函数测试的元素。callback 函数接受三个参数:当前元素、当前元素索引和原始数组。

arr.filter(callback(element, index, array)) 

    示例

const numbers = [1, 2, 3, 4, 5];

// 过滤出数组中的偶数
const evenNumbers = numbers.filter((element) => element % 2 === 0);
console.log(evenNumbers); // 输出: [2, 4]

// 过滤出数组中大于 3 的元素
const greaterThanThree = numbers.filter((element) => element > 3);
console.log(greaterThanThree); // 输出: [4, 5]

16.some(callback) 它会遍历数组的每个元素,并对每个元素应用指定的回调函数,直到找到一个满足条件的元素为止(如果数组中至少有一个元素满足条件,则返回 true。如果数组中没有任何元素满足条件,则返回 false。)

arr.some(callback(element, index, array))

     示例

const numbers = [1, 2, 3, 4, 5];

// 检查数组中是否存在大于 3 的元素
const hasGreaterThanThree = numbers.some((element) => element > 3);
console.log(hasGreaterThanThree); // 输出: true

// 检查数组中是否存在负数
const hasNegativeNumber = numbers.some((element) => element < 0);
console.log(hasNegativeNumber); // 输出: false

17.every(callback)它会逐个遍历数组的每个元素,并对每个元素应用指定的回调函数进行测试,只有当所有元素都满足条件时,才返回 true,否则返回 false

arr.every(callback(element, index, array))

示例 

const numbers = [1, 2, 3, 4, 5];

// 检查数组中的所有元素是否大于 0
const allPositive = numbers.every((element) => element > 0);
console.log(allPositive); // 输出: true

// 检查数组中的所有元素是否为偶数
const allEven = numbers.every((element) => element % 2 === 0);
console.log(allEven); // 输出: false

18.find(callback):返回数组中满足指定条件的第一个元素,如果不存在则返回 undefined。

此方法接受一个回调函数作为参数,该回调函数会接受三个参数:当前元素、当前索引和原始数组。回调函数应该返回一个布尔值,用于判断当前元素是否符合搜索条件。

callback:需要执行的回调函数。

element:当前正在处理的数组元素。

index:当前正在处理的数组元素的索引(可选)。

array:进行查找操作的原始数组(可选)。

thisArg:执行回调时使用的 this 值(可选)。

array.find(callback(element[, index[, array]])[, thisArg])

示例

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const result = arr.find(function(element) {
  return element > 5;
});
console.log(result); // 输出: 6

 注意:它只会返回第一个符合条件的元素。如果需要查找所有符合条件的元素,则需要使用 filter() 方法。

19.reduce(callback, initialValue): 从左到右将数组元素组合成单个值。callback 函数接受四个参数:累计值、当前值、当前索引和原始数组。initialValue 参数可选,表示初始累计值。 

arr.reduce(callback(accumulator, currentValue, index, array), initialValue)

   示例 

const numbers = [1, 2, 3, 4, 5];

// 计算数组中所有元素的总和
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 输出: 15

// 找出数组中的最大值
const max = numbers.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue));
console.log(max); // 输出: 5


 const arr = [11, 22, 33, 44];
 const sum = arr.reduce((prev, cur, index) => {
      return prev + cur;
     }, 10);
    
console.log(sum); // 输出: 120

20.flat(depth)方法,可以用于将多维数组转化为一维数组。这个方法会递归地遍历数组中的每个元素,并将其拼接到一个新的一维数组中。

const arr = [1, 2, [3, 4, [5, 6]]];
const flattenedArr = arr.flat();

console.log(flattenedArr);
// 输出: [1, 2, 3, 4, 5, 6]

flat()方法还可以接收一个可选的参数depth,用于指定递归的深度。如果不提供depth参数,flat()方法会默认将所有嵌套的数组都展开为一维数组。如果提供了一个正整数的depth值,它将限制递归的深度,只有达到指定深度的嵌套数组才会被展开。

const arr = [1, 2, [3, 4, [5, 6]]];
const flattenedArr = arr.flat(2);

console.log(flattenedArr);
// 输出: [1, 2, 3, 4, 5, 6]

需要注意的是:flat()方法是ES2019新增的方法,如果你的项目中使用的是较旧的JavaScript版本,可能不支持该方法。在这种情况下,你可以使用其他方法来实现数组的平铺,例如使用递归或reduce()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值