广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >javaScript数组遍历和对稀疏数组处理方法有哪些
  • 841
分享到

javaScript数组遍历和对稀疏数组处理方法有哪些

2024-04-02 19:04:59 841人浏览 八月长安
摘要

本篇内容介绍了“javascript数组遍历和对稀疏数组处理方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

本篇内容介绍了“javascript数组遍历和对稀疏数组处理方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.forEach()方法

  forEach(参数1,参数2)方法本身可以接收两个参数,第一个参数是一个函数,并且数组中的每一个元素均会调用一遍这个函数(稀疏数组除外)。一般来说,我们只会传入第一个参数(且为必传项),此处也不对其他参数多做介绍。下述其他方法的传参情况与forEach()相同。

  且下述方法中,作为参数传入的函数其本身也有参数值,分别为:数组元素的值,数组元素的索引和数组本身。即:

myArray.forEach(

    function (数组元素的值,数组元素的索引,数组本身) {

    }

)

补充:function(a) { return a+3} 为没有函数名称的匿名函数, 其可写成箭头函数的形式

a => a+3

示例:

let myArray = [1,2,3];

// num=>{} 箭头函数,相当于一个匿名函数

// function(num) { num = num * 3 }

myArray.forEach(num => {

    num = num * 3;

});

console.log(myArray) //打印结果为[ 1, 2, 3 ]

  forEach()方法没有返回值,且没有像普通for循环一样可以终止迭代的break语句,并且正如上文所说,我们在此处对num进行的改变不会更改到myArray数组中。

2.map()方法

  map()与forEach()方法不同的点在于,map()方法的第一个参数函数会接收我们每个数组的元素,并可以返回一个值。而整个map()方法的返回值就是这个函数的返回值所构成的数组。

  例:

let myArray = [1,2,3]

let result = myArray.map(num => {

    num *= 3

    return num

});

console.log(result,"\n原数组",myArray)

// 打印结果为

// [ 3, 6, 9 ] 

// 原数组 [ 1, 2, 3 ]

3.filter()

  filter()方法也有返回值,但他期望参数函数的返回值是一个boolean类型,也就是说它期望参数函数为断言函数。它的返回值是一个满足条件的myArray中的元素组成的数组。

示例:

let myArray = [1,2,3]

let result = myArray.filter(num => {

    num *= 3

    return num > 5

});

console.log(result)

//[ 2, 3 ]

  我们可以看到num值经过运算后为3、6、9,其中6和9满足大于5的条件。其返回值是数组中的2、3这两个元素,而不是运算后的结果。

4.一些非常用方法

find()和 findIndex()

  这两个方法与filter()相似,但他们会在找到第一个满足条件的值时停止迭代,find()方法会返回该元素的值,而findIndex()方法会返回这个元素在数组中的索引。例:

let myArray = [1,2,3]

let result = myArray.find(num => {

    num *= 3

    return num > 5

});

console.log(result) // 打印值为: 2

let myArray = [1,2,3]

let result = myArray.findIndex(num => {

    num *= 3

    return num > 5

});

console.log(result) // 打印值为: 1

every() 和 some()

  every()和some()函数返回值为boolean类型,亦会使用一个断言函数作为第一个入参,但只有数组中所有元素都满足断言函数的条件时,every()才会返回true,当有一个元素不满足条件时,every()会停止遍历并返回false。

let myArray = [4,1,2,3];

let count = 0; // 用于记录遍历的次数

let result = myArray.every(num => {

    count++;

    num *= 3;

    return num > 5;

});

console.log(result,"遍历的次数为",count) 

// 打印值为: false 遍历的次数为 2

  而some()函数只要有一个满足条件便会停止遍历,返回true值。

let myArray = [4,1,2,3];

let count = 0; // 用于记录遍历的次数

let result = myArray.some(num => {

    count++;

    num *= 3;

    return num > 5;

});

console.log(result,"遍历的次数为",count) 

// 打印值为: true 遍历的次数为 1

  此处需要注意的是 myArray数组的元素经过乘3运算后的结果为1、6、9,其中6和9满足大于5的条件,但其返回的是myArray中的元素,也就是没有经过运算的2和3。(不满足条件的元素不会被返回,此处与map()不同,map() 返回的数组长度与原数组一样。)

对于稀疏数组的处理

  稀疏数组定义:

稀疏数组就是其元素没有从0开始的索引的数组。正常情况下,数组的length属性表明数组中元素的个数。如果数组是稀疏的,则length属性的值会大于元素个数。

  正常的数组如 let myArray = [0,1,2],这个数组的长度为3,元素个数为3,与数组长度相同,索引依次为0、1、2。

  稀疏数组简单实践:

let testArray = new Array(10);  //数组长度为10

testArray[20] = 1 //数组长度为21

console.log(testArray) // 打印结果为 [ <20 empty items>, 1 ]

&emsp;&emsp;此时数组长度为21,而元素只有一个,这就变成了一个稀疏数组。而造就稀疏数组的实际应用场景可能在运用delete删除数组元素时发生,如:

let myArray = [1,2,3]

delete  myArray[1]

console.log(myArray,"数组的长度为",myArray.length)

console.log(1 in myArray)

// 打印结果为

// [ 1, <1 empty item>, 3 ] 数组的长度为 3

// 索引为1的元素是否存在 false

&emsp;&emsp;delete并不会修改数组的长度,也不会改变其他元素的索引值,所以会形成一个稀疏数组。如果想要元素索引值随着数组元素的删减而变化,可以使用splice()方法。

forEach()方法不会遍历稀疏数组中缺失元素

let myArray = [4,,2,3];

console.log("myArray",myArray)  

// 打印值为:myArray [ 4, <1 empty item>, 2, 3 ]

let count = 0; // 用于记录遍历的次数

myArray.forEach(num => {

    count++;

});

console.log("数组的长度为",myArray.length,"遍历的次数为",count) 

// 数组的长度为 4 遍历的次数为 3

map()也不会遍历稀疏数组中缺失元素,但其返回值数组与原数组长度相同,且缺失的元素位置也相同

let myArray = [4,,2,3];

console.log("myArray",myArray)

// 打印值为:myArray [ 4, <1 empty item>, 2, 3 ]

let count = 0; // 用于记录遍历的次数

let result = myArray.map(num => {

    count++;

    return num*3

});

console.log("数组的长度为",myArray.length,"遍历的次数为",count,"返回的数组为",result)

// 打印值为: 数组的长度为 4 

// 遍历的次数为 3 

// 返回的数组为 [ 12, <1 empty item>, 6, 9 ]

filter()的返回值不会包含稀疏数组中缺失的元素

let myArray = [4,,2,3];

console.log("myArray",myArray)

// 打印值为:myArray [ 4, <1 empty item>, 2, 3 ]

let count = 0; // 用于记录遍历的次数

let result = myArray.filter(num => {

    count++;

    return num>1

});

console.log("数组的长度为",myArray.length,"遍历的次数为",count,"返回的数组为",result)

// 打印值为: 数组的长度为 4

// 遍历的次数为 3

// 返回的数组为 [ 4, 2, 3 ]

“javaScript数组遍历和对稀疏数组处理方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: javaScript数组遍历和对稀疏数组处理方法有哪些

本文链接: https://www.lsjlt.com/news/93507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • javaScript数组遍历和对稀疏数组处理方法有哪些
    本篇内容介绍了“javaScript数组遍历和对稀疏数组处理方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2022-10-19
  • JavaScript中有哪些遍历数组的方法
    这篇文章给大家介绍JavaScript中有哪些遍历数组的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对象和事件驱动并具有相对...
    99+
    2023-06-14
  • JavaScript中遍历数组和对象有哪些常用的方法
    这篇文章主要介绍“JavaScript中遍历数组和对象有哪些常用的方法”,在日常操作中,相信很多人在JavaScript中遍历数组和对象有哪些常用的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2022-10-19
  • es6遍历数组有哪些方法
    这篇文章主要为大家展示了“es6遍历数组有哪些方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“es6遍历数组有哪些方法”这篇文章吧。 ...
    99+
    2022-10-19
  • es6遍历数组的方法有哪些
    ES6中遍历数组的方法有以下几种: for...of循环:通过for...of循环可以依次遍历数组中的每个元素。例如: cons...
    99+
    2023-10-26
    es6
  • javaScript遍历对象和数组的方法总结
    在日常工作过程中,我们对于javaScript遍历对象、数组的操作是十分的频繁的,今天抽空把经常用到的方法小结一下,方便今后参考使用! javaScript遍历对象总结 1、使用Ob...
    99+
    2022-11-13
  • php中遍历数组的方法有哪些
    本文小编为大家详细介绍“php中遍历数组的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“php中遍历数组的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。五种遍历方法:1、用“for($i=0...
    99+
    2023-06-30
  • Jquery遍历筛选数组的方法有哪些
    这篇文章主要为大家展示了“Jquery遍历筛选数组的方法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Jquery遍历筛选数组的方法有哪些”这篇文章吧。1...
    99+
    2022-10-19
  • JS中数组遍历方式有哪些
    小编给大家分享一下JS中数组遍历方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JS数组遍历的几种方式JS数组遍历,基本...
    99+
    2022-10-19
  • PHP有哪些方法可以遍历数组元素
    这篇文章主要讲解了“PHP有哪些方法可以遍历数组元素”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP有哪些方法可以遍历数组元素”吧!本篇文章就通过实际的代码例子来给大家介绍4种常见方法:...
    99+
    2023-06-20
  • go语言中遍历数组的方法有哪些
    这篇文章主要介绍了go语言中遍历数组的方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇go语言中遍历数组的方法有哪些文章都会有所收获,下面我们一起来看看吧。遍历数组有两种方法:1、用for循环语句遍历数...
    99+
    2023-07-05
  • php foreach遍历数组的方式有哪些
    在PHP中,可以使用以下几种方式来遍历数组:1. 使用foreach循环:foreach循环是遍历数组最常用的方式,它可以遍历关联数...
    99+
    2023-10-10
    php
  • 浅谈JS数组内置遍历方法有哪些和区别
    目录forEach()(ES6)方法map()(ES6) 方法flatMap()方法for...in...for...of...filter(ES6)遍历数组every()函数(ES...
    99+
    2022-11-12
  • JS中循环遍历数组方式有哪些
    这篇文章主要讲解了“JS中循环遍历数组方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS中循环遍历数组方式有哪些”吧!本文比较并总结遍历数组的四种...
    99+
    2022-10-19
  • JavaScript数据数组方法有哪些
    JavaScript数据数组方法有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  好程序员web前端培训分享JavaScript数据...
    99+
    2022-10-19
  • javascript数组的方法有哪些
    javascript数组的方法有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在日常开发中,我们会接触到js中数组的一些方法,这些方法对我们来说,可以很遍历...
    99+
    2023-06-28
  • 使用JavaScript对数组去重的方法有哪些
    这篇文章将为大家详细讲解有关使用JavaScript对数组去重的方法有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 利用对象的 key 唯一众所周知,对象的key不可重复,否则后者...
    99+
    2023-06-14
  • javascript数组里的方法有哪些
    这篇文章将为大家详细讲解有关javascript数组里的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.concat()concat() 方法用于连接两个或多个数组。方法不...
    99+
    2023-06-29
  • javascript数组去重有哪些方法
    本篇内容介绍了“javascript数组去重有哪些方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!去重方...
    99+
    2022-10-19
  • javascript数组去重方法有哪些
    这篇文章给大家分享的是有关javascript数组去重方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 第一种--对象键值去重Array.prototype.u...
    99+
    2022-10-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作