原生JS forEach和map遍历的区别以及兼容写法

原生JS forEach和map遍历的区别以及兼容写法,第1张

JS 的 forEach 和 map 方法都是 ES5 为处理数组而新增的迭代方法,区别在于 map 方法返回一个新数组,而 forEach 方法没有返回值。举个例子:

var arr = [1, 2, 4, 7, 8];

// 目标:上述数组里的每一项偶数都+1,使整个数组里都是奇数。

// map 方法

var result = arrmap(function(item) {

    return item % 2 === 0  item + 1 : item;

});

consolelog(result);  // [1, 3, 5, 7, 9]

// forEach 方法

var result = [];

arrforEach(function(item) {

    if (item % 2 === 0) {

        item += 1;

    }

    resultpush(item);

});

consolelog(result);  // [1, 3, 5, 7, 9]

从上述例子可以看出,使用 map 方法要方便的多,代码也更优雅。这里需要注意的是这两个方法不支持 IE9 以下的 IE 浏览器,要兼容的话一般用 for 循环来实现:

// for 循环方法

var result = [];

for (var i = 0; i < arrlength; i++) {

    if (arr[i] % 2 === 0) {

        arr[i] += 1;

    }

    resultpush(arr[i]);

}

consolelog(result);  // [1, 3, 5, 7, 9]

如果是json字符串可以使用 var jsonObj=JSONparse(json字符串);解析出来。再遍历

如:

var jsonStr='{"classId":1,"className":"前端学习速成班","students":[{"studentId":1,"studentName":"刘德华"},{"studentId":2,"studentName":"张学友"}]}'

var obj=JSONparse(jsonStr);

alert("我的班级:"+objclassName+",我是,"+objstudents[0]studentName);

步骤如下。

1、需要在map()函数中定义一个回调函数。

2、然后将所有的数组元素放到map()函数中。

3、执行后就可以得到一个新的数组,里面的元素都是字符串格式的了。

jsmap是一种基于JavaScript的Map对象,它用来存储键值对,存储格式为:key-value。要获取jsmap中所有的属性,可以使用以下几种方法。

1 使用jsmapkeys()方法:该方法会返回一个包含所有键的数组,可以使用for循环来遍历该数组,从而获取所有的属性。

2 使用jsmapvalues()方法:该方法会返回一个包含所有值的数组,可以使用for循环来遍历该数组,从而获取所有的属性。

3 使用jsmapforEach()方法:该方法会接收一个回调函数,回调函数会接收三个参数:当前键、当前值和当前Map对象,可以使用这三个参数来获取jsmap中的所有属性。

4 使用Objectkeys()方法:该方法会返回一个包含所有可枚举属性的数组,可以使用for循环来遍历该数组,从而获取所有的属性。

5 使用Objectvalues()方法:该方法会返回一个包含所有可枚举属性的数组,可以使用for循环来遍历该数组,从而获取所有的属性。

以上就是获取jsmap中所有属性的几种方法,使用这些方法,可以轻松获取jsmap中所有的属性。

数组(array)的map方法的第一个参数是遍历的当前值,第二个参数则是索引值,而你这段代码并不需要用到当前值,所以随便用了个_符号代替,在js中,_是合法的名字(可用作变量名、参数名、对象名等),你也可以用其他名字代替,比如 a、b、c、d……等等,这里用_应该只是编程者的个人习惯,并没有特殊含义。

Array(5)是建立一个5元素的空数组

fill(null)是用null值填充空数组

map((_,i)=>i+1)是遍历数组,把数组元素的索引值+1后作为数组的新元素值返回

比如原数组是 [null,null,null,null,null]

那么新数组就是 [1,2,3,4,5]

以上就是关于原生JS forEach和map遍历的区别以及兼容写法全部的内容,包括:原生JS forEach和map遍历的区别以及兼容写法、求教 前台JS 如何读取JSON中的MAP 集合、js遍历数组如何把取出来的值进行字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9643305.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存