28个JS常用数组方法总结

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 页面元素的几个用法总结

    下面是“js 页面元素的几个用法总结”的完整攻略。 标题 一、获取元素 在 JS 中,我们可以通过 document 对象的相应方法获取元素。其中 querySelector 和 getElementById 最为常用。 // 通过 ID 获取元素 let element = document.getElementById(‘elementId’); // …

    JavaScript 2023年5月28日
    00
  • PHP设计聊天室步步通

    下面我将为你详细讲解“PHP设计聊天室步步通”的完整攻略: 确定功能需求 在开始制作聊天室之前,应该先确定聊天室需要实现哪些功能。可以从以下几个方面考虑: 聊天记录保存和展示 用户登录注册 添加好友 私聊 群聊 发送图片、文件和链接等附件 构建数据库 在确定需要实现哪些功能之后,接下来需要设计数据库结构。聊天室需要存储用户信息、聊天记录等数据。 设计用户表 …

    JavaScript 2023年6月10日
    00
  • JSON stringify及parse方法实现数据深拷贝

    JSON stringify及parse方法实现数据深拷贝 对于JavaScript中的对象类型,简单的赋值操作只是将对象的引用传递给了变量,而非真正的拷贝。因此,当我们需要对这些数据进行深拷贝时,需要使用到一些特殊的方法。 在JavaScript中,常用的实现数据深拷贝的方法有以下几种:遍历拷贝、jQuery中的$.extend方法、lodash库中的_.…

    JavaScript 2023年5月27日
    00
  • JavaScript学习笔记之DOM基础操作实例小结

    JavaScript(JS)是一种广泛使用的脚本语言,常用于网页设计与动态交互效果实现。DOM(Document Object Model)文档对象模型是JS操作网页中HTML元素和样式的接口。掌握DOM基础操作是学习JS的重要一步,本文将为你介绍如何使用DOM对网页进行修改操作。 1. 加载HTML和JS 在HTML文件中引入JS,然后再通过documen…

    JavaScript 2023年6月10日
    00
  • javascript模拟滚动条实现代码

    下面是详细的Javascript模拟滚动条实现代码攻略以及两个具体示例: 理解模拟滚动条实现的基本思路 在网页中,我们经常需要显示超过页面高度的内容,比如文章、图片、列表等。这些内容通常会被放在容器元素中(比如 <div>)中,而这个容器元素则设置了特定的高度和 overflow: scroll 样式,以便自动显示出垂直方向的滚动条。 本质上,模…

    JavaScript 2023年5月27日
    00
  • javascript中运用闭包和自执行函数解决大量的全局变量问题

    当我们在JavaScript中编写代码时,如果不使用闭包或自执行函数,大量的全局变量就会污染全局命名空间,导致代码难以维护、调试和重构。因此,我们需要使用闭包或自执行函数来保持代码的可读性、可维护性,并且保护全局命名空间。下面是使用闭包和自执行函数解决全局变量问题的攻略: 1. 使用闭包 1.1 什么是闭包? 闭包是指在函数内部创建另一个函数,该函数可以访问…

    JavaScript 2023年6月10日
    00
  • html5 web本地存储将取代我们的cookie

    HTML5 Web本地存储指的是一种在客户端(浏览器)端进行数据存储的技术。它主要通过Web Storage API和IndexedDB API来实现。 与传统的Cookie相比,Web本地存储有诸多优点。例如,Web本地存储提供了比Cookie更大的存储空间,并且数据存储在本地,不需要每次请求都带上一份数据,从而减少了网络流量。 以下是使用Web本地存储来…

    JavaScript 2023年6月11日
    00
  • js中获取时间new Date()的全面介绍

    下面给出对”js中获取时间new Date()的全面介绍”的详细讲解。 1. 什么是Date对象? 在JavaScript中,Date对象用于处理日期和时间,它可以获取当前的日期时间,也可以设置指定的日期时间。 使用new Date()命令可以创建一个Date对象。如下面的示例代码: let date = new Date(); console.log(da…

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