美文网首页
js遍历方法比较

js遍历方法比较

作者: 叹玖 | 来源:发表于2018-07-28 15:35 被阅读0次
一。最原始的for循环
let myArray = ['a','b','c'];
for(var index = 0; index < myArray.length; index++) {
    console.log(index,myArray[index]);
}  
// 0 "a"
// 1 "b"
// 2 "c"
二。forEach

上面写法较为麻烦,所以数组提供了forEach方法。

myArray.forEach(function (value) {
        console.log(value);
    });
//a
//b
//c

该方法存在一个问题,即不能中途跳出循环。break,return,continue都不能奏效。

三。for...in
for (var index in myArray) {
  console.log(index,myArray[index]);
}
// 0 a
// 1 b
// 2 c

for...in缺点:

for...in遍历数组的键名,数组的键名是数字,其不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。for...in循环主要是为对象的遍历设计的,不适用于数组的遍历。

四。map
arr.map(function () {
});
五。for...of
for (let value of myArray) {
  console.log(index,value);
}
//a
//b
//c

for...of没有for...inforEach的缺点,它可以与breakcontinuereturn配合使用。

for...of不能用于遍历普通的对象,会报错

let obj = {
  edition: 6,
  committee: "TC39",
  standard: "ECMA-262"
};

for (let e in obj) {
  console.log(e);
}
// edition
// committee
// standard  for...in可以遍历对象键名

for (let e of es6) {
  console.log(e);
}
// TypeError: es6[Symbol.iterator] is not a function

解决方案:

(1)使用Object.keys()方法将对象的键名生成一个数组,然后遍历这个数组。

for(var key of Object.keys(obj)) {
    console.log(key + ': ' + obj[key])
}
//edition: 6
//committee: TC39
//standard: ECMA-262

(2) 使用 Generator 函数将对象重新包装一下。

function* entries(obj) {
  for (let key of Object.keys(obj)) {
    yield [key, obj[key]];
  }
}

for (let [key, value] of entries(obj)) {
  console.log(key, '->', value);
}
// a -> 1
// b -> 2
// c -> 3

(3)利用Object.entries()与解构赋值

Object.entries(obj).forEach(([key,value]) => console.log(`${key}:${value}`))

相关文章

  • js遍历方法比较

    一。最原始的for循环 二。forEach 上面写法较为麻烦,所以数组提供了forEach方法。 该方法存在一个问...

  • JS遍历方法性能比较

    考虑游览器版本,内核优化,数据会有偏差;各个循环适用条件场景,优缺点,性能消耗 创建一个10w条数据的数组,遍历该...

  • js遍历对象for...in...方法

    js遍历对象的方法有很多,目前个人用得比较多的是for...in...方法。const obj= {name:'小...

  • JS 数组循环遍历方法的对比

    JS 数组循环遍历方法的对比 JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行...

  • 【】for、forEach、map数组遍历性能比较

    【js】for、forEach、map数组遍历性能比较 结果:遍历时间上for循环遍历

  • for循环性能比较

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,...

  • JS遍历相关知识

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,...

  • 聊一聊数组的map、reduce、foreach等方法

    聊聊数组遍历方法 JS 数组的遍历方法有好几个: every some filter foreach map re...

  • JS几种数组遍历方法的比较

    JS的数组的遍历方式有很多,每个的功能又不尽相同,因此想好好地整理一下它们之间的区别。这里只列举数组自带的API,...

  • js基础了解

    js数组常用遍历方法使用: js数组常用操作方法使用: 基本逻辑运算: 基本字符串操作方法:

网友评论

      本文标题:js遍历方法比较

      本文链接:https://www.haomeiwen.com/subject/mbeomftx.html