深入理解javascript中的forEach方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了深入理解javascript中的forEach方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2591字,纯文字阅读大概需要4分钟。
内容图文
最近在深入学习JavaScript,总结了一些知识点,分享给大家。此文主要讲述了JavaScript中,数组的forEach方法,需要的朋友可以参考学习一下,希望对你有用。forEach 方法按升序为数组中 含 有效值的每一项执行一次callback函数,那些已删除(使用daleta方法等情况)或者未初始化的项将被跳过(但不包括那些指为undefined的项 ) ;
方法接受一个回调函数,回调函数接受三个参数:当前项、索引、操作的数组。
var array1 = ['a', 'b', 'c']; array1.forEach(function(element) { console.log(element); }); // a // b // c
forEach() 方法对数组的每个元素执行一次提供的函数。
案例:for 循环转换为 forEach
转换之前
const items = ['item1', 'item2', 'item3']; const copy = []; for (let i=0; i<items.length; i++) { copy.push(items[i]) }
转换之后
const items = ['item1', 'item2', 'item3']; const copy = []; items.forEach(function(item){ copy.push(item) });
其结果都是
copy: ["item1", "item2", "item3"]
案例:打印出数组的内容
function logArrayElements(element, index, array) { console.log("a[" + index + "] = " + element); } // 注意索引2被跳过了,因为在数组的这个位置没有项 [2, 5, ,9].forEach(logArrayElements); // a[0] = 2 // a[1] = 5 // a[3] = 9 [2, 5,"" ,9].forEach(logArrayElements); // a[0] = 2 // a[1] = 5 // a[2] = // a[3] = 9 [2, 5, undefined ,9].forEach(logArrayElements); // a[0] = 2 // a[1] = 5 // a[2] = undefined // a[3] = 9 let xxx; // undefined [2, 5, xxx ,9].forEach(logArrayElements); // a[0] = 2 // a[1] = 5 // a[2] = undefined // a[3] = 9
forEach 遍历的范围在第一次调用 回调前就会确定。调用forEach 后添加到数组中的项不会被 回调 访问到。如果已经存在的值被改变,则传递给 回调的值是 forEach 遍历到他们那一刻的值。已删除的项不会被遍历到。如果已访问的元素在迭代时被删除了(例如使用 shift()) ,之后的元素将被跳过——看代码
var words = ["one", "two", "three", "four"]; words.forEach(function(word) { console.log(word); if (word === "two") { words.shift(); } }); // one // two // four
上面的代码不知道有看懂没有,是因为当你执行到two的时候删除数组的第一项,然而呢本来索引是 1 的项因为你把前面的项删掉了以后,索引就变成 0 了,而 0 你已经执行过了,所以并不会在执行一边,forEach 遍历的范围在第一次调用回调函数前就已经确定,已删除的项不会被遍历到。
在来看一个例子,只是在上面稍稍改动一下:
var words = ["one", "two", "three","", "four"]; words.forEach(function(word) { words = ["one", "two", "three","fix", "four"]; console.log(word); if (word === "two") { words.shift(); } }); // one // two // three // // four
上面索引为 3 的时候 输出的结果为空,即使是你已经给他重新赋值了一次,再来看下words的结果:
console.log(words) // ["one", "two", "three", "fix", "four"]
以上是我的总结,还希望大佬补充补充。
以上就是深入理解javascript 中的forEach方法的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的深入理解javascript中的forEach方法全部内容,希望文章能够帮你解决深入理解javascript中的forEach方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。