28个JS常用数组方法总结

yizhihongxing

28个JS常用数组方法总结

本文将介绍28个JS常用数组方法,包括简单的遍历方法和高级的数组变换方法。这些方法可以用来操作数组,从而更好的解决开发中出现的问题。

1. forEach

forEach用于遍历数组并对数组中的每个元素执行指定操作。操作通过传递一个回调函数实现。回调函数接受三个参数:数组中的当前元素、当前元素的索引和数组本身。

const arr = [1, 2, 3];

arr.forEach(function(element, index, array) {
  console.log(`当前元素:${element},当前索引:${index},数组本身:${array}`);
});

输出结果:

当前元素:1,当前索引:0,数组本身:1,2,3
当前元素:2,当前索引:1,数组本身:1,2,3
当前元素:3,当前索引:2,数组本身:1,2,3

2. map

map方法用于将数组中的每个元素转换为新元素,返回一个新数组。回调函数接受三个参数:数组中的当前元素、当前元素的索引和数组本身。回调函数返回一个新值,该值将在新数组中放置到当前元素的位置。

const arr = [1, 2, 3];

const newArr = arr.map(function(element, index, array) {
  return element * 2;
});

console.log(newArr); // [2, 4, 6]

3. filter

filter用于从数组中选择一组元素,并返回一个新的数组,新数组包含满足筛选条件的元素。回调函数接受三个参数:数组中的当前元素、当前元素的索引和数组本身。如果回调函数返回true,则当前元素将包含在新数组中。

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

const newArr = arr.filter(function(element, index, array) {
  return element % 2 === 0;
});

console.log(newArr); // [2, 4]

4. reduce

reduce方法用于将数组中的所有元素计算为一个单一值。回调函数接受四个参数:accumulator(累加器)、当前元素、当前元素的索引和数组本身。回调函数执行后,返回的结果将成为下一次迭代时的accumulator参数的值。

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

const sum = arr.reduce(function(accumulator, currentVal) {
  return accumulator + currentVal;
});

console.log(sum); // 15

5. some

some方法用于检查数组中是否至少有一个元素满足指定条件。回调函数接受三个参数:数组中的当前元素、当前元素的索引和数组本身。如果回调函数返回true,则some方法将返回true,如果没有元素满足条件,则返回false

const arr = [1, 2, 3, 4];

const hasEvenNumber = arr.some(function(element) {
  return element % 2 === 0;
});

console.log(hasEvenNumber); // true

6. every

every方法用于检查数组中的所有元素是否满足指定条件。回调函数接受三个参数:数组中的当前元素、当前元素的索引和数组本身。如果所有元素都满足条件,则every方法将返回true,否则返回false

const arr = [1, 2, 3, 4];

const allEvenNumbers = arr.every(function(element) {
  return element % 2 === 0;
});

console.log(allEvenNumbers); // false

7. sort

sort方法用于对数组进行排序。如果没有传入比较函数,sort方法将按照Unicode字符顺序对数组进行排序。如果传入了比较函数,则该函数将定义排序顺序。

const arr = [3, 2, 1];

arr.sort(function(a, b) {
  return a - b;
});

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

8. reverse

reverse方法用于将数组中的所有元素按照相反的顺序排列。

const arr = [1, 2, 3];

arr.reverse();

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

9. find

find方法用于查找满足指定条件的数组元素,并返回该元素的值。回调函数接受三个参数:数组中的当前元素、当前元素的索引和数组本身。如果回调函数返回true,则find方法将返回该元素,否则返回undefined

const arr = [1, 3, 5, 7];

const result = arr.find(function(element) {
  return element > 3;
});

console.log(result); // 5

10. findIndex

findIndex方法用于查找满足指定条件的数组元素,并返回该元素的索引。回调函数接受三个参数:数组中的当前元素、当前元素的索引和数组本身。如果回调函数返回true,则findIndex方法将返回该元素的索引,否则返回-1

const arr = [1, 3, 5, 7];

const index = arr.findIndex(function(element) {
  return element > 3;
});

console.log(index); // 2

11. includes

includes用于检查数组中是否存在指定的元素。如果存在,则返回true,否则返回falseincludes方法接受两个参数:需要查找的元素和可选的查找起始索引。

const arr = [1, 2, 3];

const hasNumberTwo = arr.includes(2);

console.log(hasNumberTwo); // true

12. indexOf

indexOf用于查找数组中指定元素的位置。如果存在,则返回该元素的索引,否则返回-1indexOf方法接受两个参数:需要查找的元素和可选的查找起始索引。

const arr = [1, 2, 3];

const index = arr.indexOf(2);

console.log(index); // 1

13. lastIndexOf

lastIndexOf用于查找数组中指定元素的最后一个位置。如果存在,则返回该元素的索引,否则返回-1lastIndexOf方法接受两个参数:需要查找的元素和可选的查找起始索引。

const arr = [1, 2, 3, 2];

const index = arr.lastIndexOf(2);

console.log(index); // 3

14. concat

concat方法用于将两个或多个数组连接成一个数组。concat方法不会修改原始数组,而是返回一个新数组。

const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = [5, 6];

const newArr = arr1.concat(arr2, arr3);

console.log(newArr); // [1, 2, 3, 4, 5, 6]

15. join

join方法用于将数组中的所有元素连接成一个字符串。可以指定一个分隔符来在元素之间添加分隔符。

const arr = [1, 2, 3];

const str = arr.join(',');

console.log(str); // '1,2,3'

16. slice

slice方法用于从数组中提取指定位置的元素,并返回一个新的数组。slice方法接受两个参数:提取开始位置和可选的提取结束位置。如果未指定提取结束位置,则提取到数组末尾为止。

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

const newArr = arr.slice(1, 4);

console.log(newArr); // [2, 3, 4]

17. splice

splice方法用于添加或删除数组中的元素。splice方法接受三个参数:添加或删除元素的起始位置、需要删除的元素数量和需要添加的新元素。

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

arr.splice(2, 1, 'a', 'b');

console.log(arr); // [1, 2, 'a', 'b', 4, 5]

18. shift

shift方法用于删除数组中的第一个元素,并返回该元素的值。该操作会修改原始数组。

const arr = [1, 2, 3];

const shifted = arr.shift();

console.log(shifted); // 1
console.log(arr); // [2, 3]

19. unshift

unshift方法用于在数组的开头添加一个或多个元素,并返回新数组的长度。该操作会修改原始数组。

const arr = [1, 2, 3];

const length = arr.unshift(0);

console.log(length); // 4
console.log(arr); // [0, 1, 2, 3]

20. push

push方法用于在数组的末尾添加一个或多个元素,并返回新数组的长度。该操作会修改原始数组。

const arr = [1, 2, 3];

const length = arr.push(4, 5);

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

21. pop

pop方法用于删除数组末尾的元素,并返回该元素的值。该操作会修改原始数组。

const arr = [1, 2, 3];

const popped = arr.pop();

console.log(popped); // 3
console.log(arr); // [1, 2]

22. toString

toString方法用于将数组转换为字符串,并返回该字符串。

const arr = [1, 2, 3];

const str = arr.toString();

console.log(str); // '1,2,3'

23. flat

flat方法用于将多维数组转换为一维数组。flat方法接受一个可选的层数参数,表示需要扁平化的维度数。

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

const flatArr = arr.flat(2);

console.log(flatArr); // [1, 2, 3, 4, 5, 6, 7]

24. slice()

与它的编程语言名字相同,slice()是JavaScript的一个函数,用于切分数组。可以非常简单地理解,该函数可以切分一个数组,并将其以一个新的数组返回。而且它真的非常简单,也非常灵活。下面就来看一下它的具体用法:

/*例子*/
let array1 = [1, 2, 3 ,4, 5, 6];

console.log(array1.slice(2,4));//  [3,4]

这里我们传入两个参数,分别为2 和 4。 数组中这个时候,index = 2 就是3,index = 4 就是5。函数返回一个从index=2的元素开始,到index=4前一个位置的子数组,即 [3, 4]。

在切分数组时,可以选择不传入第二个参数。这时,数组将会从第一个索引开始,一直分割到数组末尾。可以看下面的例子,以更好的理解:

 let weatherConditions = ['rain', 'snow', 'sleet', 'hail', 'clear']

let todaysWeather = weatherConditions.slice(1,3)

console.log(todaysWeather); //  ['snow', 'sleet']

25. join()

join()是懂JavaScript奇妙函数之一。它加到的不仅仅是数组,普通的字符串也适用。 join() 用于将数组中的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。默认情况下,元素由逗号分隔。如果将空分隔符 ("") 用作分隔符,join() 将在元素之间没有字符添加。

例如,看下面的例子:

const stuff = ['test', '123', 'arrays']

const str = stuff.join(' -- ')

console.log(str)// 
/* 'test -- 123 -- arrays' */

join()接受一个参数separator,是用来分隔数组元素的字符串,在代码中,我们把字符串 '--' 作为元素之间的分割符了。 如果不指定该参数,则默认使用逗号,其规则等同于toString()方法。

结合上面两个方法进行案例:

 let weatherConditions = ['rain', 'snow', 'sleet', 'hail', 'clear']

let todaysWeather = weatherConditions.slice(1,3);
console.log(todaysWeather.join(" and ")); //  'snow and sleet'

在上面的例子中,我们将新切分后的数组元素用‘and’连接起来。结果是:’snow and sleet‘。

总结

以上就是28个JS常用数组方法总结,包括遍历方法和高级数组变换方法。每个数组方法都有自己的作用和适用场景,可以根据实际需要灵活使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:28个JS常用数组方法总结 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js中的window.open返回object的错误的解决方法

    问题描述:在JavaScript中,使用window.open()函数打开一个新的浏览器窗口时,有时会发生返回object的错误,导致后续的变量调用和方法调用无法进行。这个问题该如何解决呢? 解决方法: 一、使用try-catch语句包裹window.open()函数 由于window.open()函数并非非常稳定,有时与浏览器相关的问题会导致函数内部抛出异…

    JavaScript 2023年6月11日
    00
  • JS实现的在线调色板实例(附demo源码下载)

    JS实现的在线调色板实例 本篇文章将向您展示如何使用JavaScript创建一个在线调色板实例。本项目使用HTML、CSS和JS,允许用户通过单击颜色选取器调整颜色,然后显示所选颜色的值。 项目代码 请先下载示例代码,然后跟随我们的指导进行实现:在线调色板实例源代码 实现过程 从Github仓库中下载示例代码。 用您最喜欢的编辑器打开index.html文件…

    JavaScript 2023年6月10日
    00
  • Javascript实现关闭广告效果

    首先我们需要明确一下什么是广告,广告通常是指网页中不需要的内容,往往我们希望将其从页面中移除,这就是所谓的关闭广告。 实现关闭广告效果的方法很多,目前比较常用的是Javascript脚本。Javascript不仅可以用来强制隐藏广告,还可以用来防止广告显示在首屏内容之前。 下面介绍几种常用的Javascript实现关闭广告的方法及其示例说明: 一、使用广告屏…

    JavaScript 2023年6月11日
    00
  • 代码生成器 document.write()

    代码生成器 document.write() 是一种 JavaScript 方法,可以在 HTML 文档中动态生成内容。在本文中,将详细讲解使用 document.write() 方法来生成 HTML 代码的完整攻略。 使用 document.write() 语法 document.write(HTMLcode) 参数 HTMLcode : 必需。要写入 H…

    JavaScript 2023年5月28日
    00
  • javascript实现查找数组中最大值方法汇总

    JavaScript实现查找数组中最大值方法汇总 对于数组中的最大值查找,JavaScript 提供了多种实现方式,这里将介绍最常用的三种方法: 方法一: for循环遍历数组,逐一比较大小 该方法的实现思路是通过 for 循环遍历整个数组,不断更新当前最大值。代码示例如下: function getArrayMax(arr) { let max = arr[…

    JavaScript 2023年6月10日
    00
  • 全面解析JavaScript中的valueOf与toString方法(推荐)

    全面解析JavaScript中的valueOf与toString方法 本文将全面深入地解析JavaScript中的valueOf与toString方法,以及它们的区别和各自的应用场景。 前言 JavaScript是动态的、弱类型的语言,它允许我们对不同类型的值进行各种操作。由于JavaScript的数据类型是动态的,因此只有在执行代码时才能确定变量的数据类型…

    JavaScript 2023年5月28日
    00
  • PHP实现把文本中的URL转换为链接的auolink()函数分享

    当我们在编写一些包含URL的文本内容时,我们经常需要把这些URL转换为超链接,以便用户可以直接点击链接访问网页。在PHP中,可以使用autolink()函数来实现这个功能。 以下是实现该功能的步骤: 1. 利用正则表达式匹配URL 我们需要使用一个正则表达式来匹配一个可能包含URL的文本,并将URL提取出来。以下是示例代码: function autolin…

    JavaScript 2023年6月11日
    00
  • Javascript中对象继承的实现小例

    Javascript中对象继承的实现小例 实现对象继承的方式有很多种,包括原型链继承、借用构造函数继承、组合继承等。本例介绍如何通过原型链继承的方式实现对象的继承。 原型链继承 原型链继承是一种简单、易懂的继承方式。它的基本原理是:通过将子类的原型设置为父类的实例,子类就可以继承父类的实例属性和方法。 具体来说,我们可以先定义一个父类MyClass,再定义一…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部