返回

小陈同学的前端笔记 | 数组常用方法整理(二)不会改变数组自身的方法

前端

好的,我来为您创作一篇关于不会改变数组自身的一些方法的文章。

在上一期,我们探讨了会改变数组自身的 Javascript 方法,希望读者已经对此有了较为全面的理解。今天,我们将继续关注 JavaScript 数组的其他常用方法。让我们开始吧!

slice

slice() 方法从数组中提取一定范围的元素,这些元素不会改变数组自身。它接受两个参数:

  • startIndex:要提取元素的起始位置,为负数时从数组末尾开始计数
  • endIndex:要提取元素的结束位置,不包括此位置上的元素,为负数时从数组末尾开始计数
const numbers = [1, 2, 3, 4, 5, 6];

const extracted = numbers.slice(2); // [3, 4, 5, 6]
const extracted2 = numbers.slice(2, 4); // [3, 4]
const extracted3 = numbers.slice(-3, -1); // [4, 5]

concat

concat() 方法将一个或多个数组组合成一个新的数组,这些数组不会改变数组自身。它接受一个或多个数组参数,并将它们连接起来形成一个新的数组。

const numbers = [1, 2, 3];
const letters = ['a', 'b', 'c'];

const combined = numbers.concat(letters); // [1, 2, 3, 'a', 'b', 'c']
const combined2 = numbers.concat([4, 5], [6, 7]); // [1, 2, 3, 4, 5, 6, 7]

join

join() 方法将数组中的所有元素连接成一个字符串,这些数组不会改变数组自身。它接受一个参数,该参数是一个分隔符,用于将元素连接起来。

const numbers = [1, 2, 3];

const joined = numbers.join(); // "1,2,3"
const joined2 = numbers.join(' '); // "1 2 3"
const joined3 = numbers.join('-'); // "1-2-3"

filter

filter() 方法创建一个新的数组,其中包含通过指定测试函数的元素,这些数组不会改变数组自身。它接受一个函数参数,该函数对每个元素进行测试,如果测试通过,则将该元素包含在新数组中。

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

const filtered = numbers.filter(n => n % 2 === 0); // [2, 4, 6]
const filtered2 = numbers.filter(n => n > 3); // [4, 5, 6]

map

map() 方法创建一个新的数组,其中包含对数组中每个元素应用指定函数的结果,这些数组不会改变数组自身。它接受一个函数参数,该函数对每个元素进行操作,并将结果包含在新数组中。

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

const doubled = numbers.map(n => n * 2); // [2, 4, 6, 8, 10, 12]
const strings = numbers.map(n => n.toString()); // ['1', '2', '3', '4', '5', '6']

some

some() 方法测试数组中是否有至少一个元素通过指定测试函数,这些数组不会改变数组自身。它接受一个函数参数,该函数对每个元素进行测试,如果至少有一个元素测试通过,则返回 true,否则返回 false。

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

const someEven = numbers.some(n => n % 2 === 0); // true
const someGreaterThan5 = numbers.some(n => n > 5); // true
const someGreaterThan10 = numbers.some(n => n > 10); // false

every

every() 方法测试数组中是否所有元素都通过指定测试函数,这些数组不会改变数组自身。它接受一个函数参数,该函数对每个元素进行测试,如果所有元素都测试通过,则返回 true,否则返回 false。

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

const everyEven = numbers.every(n => n % 2 === 0); // false
const everyGreaterThan0 = numbers.every(n => n > 0); // true
const everyGreaterThan5 = numbers.every(n => n > 5); // false

find

find() 方法返回数组中第一个通过指定测试函数的元素,这些数组不会改变数组自身。它接受一个函数参数,该函数对每个元素进行测试,如果找到一个元素测试通过,则返回该元素,否则返回 undefined。

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

const firstEven = numbers.find(n => n % 2 === 0); // 2
const firstGreaterThan5 = numbers.find(n => n > 5); // 6
const firstGreaterThan10 = numbers.find(n => n > 10); // undefined

findIndex

findIndex() 方法返回数组中第一个通过指定测试函数的元素的索引,这些数组不会改变数组自身。它接受一个函数参数,该函数对每个元素进行测试,如果找到一个元素测试通过,则返回该元素的索引,否则返回 -1。

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

const firstEvenIndex = numbers.findIndex(n => n % 2 === 0); // 1
const firstGreaterThan5Index = numbers.findIndex(n => n > 5); // 5
const firstGreaterThan10Index = numbers.findIndex(n => n > 10); // -1

通过以上文章的介绍,希望能加深您对不会改变数组的方法的理解,希望您能够将其运用到您的项目中。感谢您的阅读,谢谢!