js循环操作和效率分析(for、while、forEach、map、for of)

for循环四种写法:

const persons = ['郑昊川', '钟忠', '高晓波', '韦贵铁', '杨俊', '宋灿']

// 方法一

for (let i = 0; i < persons.length; i++) {

console.log(persons[i])

}

// 方法二 , 缓存长度

for (let i = 0, len = persons.length; i < len; i++) {

console.log(persons[i])

}

// 方法三 ,  取值和判断合并

for (let i = 0, person; person = persons[i]; i++) {

console.log(person)

}

或者:

for (let i = 0, person; person = persons[i++];) { 

console.log(person) 

}  

// 方法四 , i--与判断合并,倒序迭代

for (let i = persons.length; i--;) {

console.log(persons[i])

方法三 :如果person的值不是Truthy时,循环结束。

方法四:倒序遍历。

理论上讲方法二比方法一要快,但是事实并非如此,参考实践:https://blog.csdn.net/haochuan9421/article/details/81414532

while循环以及ES6+的新语法forEach、map和for of

// 方法五,while

function method5() {

var arrCopy = []

console.time('method5')

let i = 0

while (i < hugeArr.length) {

arrCopy.push(hugeArr[i++])

}

console.timeEnd('method5') }

// 方法六,forEach

function method6() {

var arrCopy = []

console.time('method6')

hugeArr.forEach((item) => {

arrCopy.push(item)

})

console.timeEnd('method6')

}

// 方法七,map

function method7() {

var arrCopy = []

console.time('method7')

arrCopy = hugeArr.map(item => item)

console.timeEnd('method7')

}

// 方法八,for of

function method8() {

var arrCopy = []

console.time('method8')

for (let item of hugeArr) {

arrCopy.push(item)

}

console.timeEnd('method8')

在`node`下,`forEach`、`map`和`for of` 这些`ES6+`的语法并没有传统的`for`循环或者`while`循环快,特别是`map`方法。但是由于`map`有返回值,无需额外调用新数组的`push`方法,所以在执行浅拷贝任务上,内存占用很低。而`for of`语法在内存占用上也有一定的优势。`for循环 while循环 for of 循环`是可以通过`break`关键字跳出的,而`forEach map`这种循环是无法跳出的。 但是随着执行环境和浏览器的不同,这些语法在执行速度上也会出现偏差甚至反转的情况。参考:https://blog.csdn.net/haochuan9421/article/details/81414532

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,730评论 0 13
  • Iterator(遍历器)的概念 JavaScript原有的表示“集合”的数据结构,主要是数组和对象,ES6又添加...
    oWSQo阅读 3,767评论 0 1
  • 看到老师的文章关于爱与被爱,第一感觉不是温暖,而是悲伤。 今生,我再也见不到我的妈妈了,我们母女一场的缘分也许只有...
    孙丽芹_520阅读 4,151评论 10 16
  • 《消失的你》-- 杏子 一年三百六十五天 无一日你不在 一天二十四小时 每分每秒你都参与 直到有一天 这悲伤的一天...
    一种缺陷ing阅读 1,247评论 0 0
  • 本文参加#我的古城,我的故事#活动,本人承诺,本文为原创文章,未在其他平台发表。 利川地处湖北西南边...
    啾啾宝贝阅读 4,132评论 4 4

友情链接更多精彩内容