首页 > 其他分享 >for in 和 for of的区别

for in 和 for of的区别

时间:2022-08-26 21:33:42浏览次数:122  
标签:遍历 console log 区别 23 key const

1.循环数组

区别一:for in 和 for of 都可以循环数组,for in 输出的是数组的index下标,而for of 输出的是数组的每一项的值。

const arr = ['a', 'b', 'c', 'd']

// for ... in
for (const key in arr) {
  console.log(key) // 输出 0,1,2,3
}

// for ... of
for (const key of arr) {
  console.log(key) // 输出 a,b,c,d
}

2.循环对象

区别二:for in 可以遍历对象,for of 不能遍历对象,只能遍历带有iterator(迭代器)接口的,例如Set,Map,String,Array

const object = { name: 'zs', age: 23 }
// for ... in
for (const key in object) {
  console.log(key) // 输出 name,age
  console.log(object[key]) // 输出 zs,23
}
// for ... of
for (const key of object) {
  console.log(key) // 报错 Uncaught TypeError: object is not iterable
}

3.数组对象

const list = [{ name: 'lx' }, { age: 23 }]
  for (const val of list) {
    console.log(val) // 输出{ name: 'lx' }, { age: 23 }
    for (const key in val) {
      console.log(val[key]) // 输出 lx,23
    }
  }

总结:for in适合遍历对象,for of适合遍历数组。for in遍历的是数组的索引,对象的属性,以及原型链上的属性。

标签:遍历,console,log,区别,23,key,const
From: https://www.cnblogs.com/yyshow/p/16629339.html

相关文章

  • new与malloc的区别以及实现方法
    new和malloc的内存分配在哪分配在堆上。也有说new是分配在自由存储区而malloc分配在堆上,自由存储区可以是堆也可以不是,具体要看new内部的实现。操作系统在堆上维护一个......
  • C语言字符串处理函数 gets()和fgets()的区别及使用
    字符串函数(Stringprocessingfunction)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍C语言中符串处理函数gets()和fgets()的区别使用方法,......
  • JAVA基础-jar包和war包的区别
    转载:https://juejin.cn/post/7086099522903883790jar包:是与平台无关的文件格式,允许将多个文件组合成一个压缩文件,以zip文件格式为基础,不同的是jar文件不仅用域压缩和发布,......
  • python基础-is 和==的区别及编码和解码
    python基础-is和==的区别及编码和解码 is和==的区别 #a='alex@'#a1='alex@'#print(aisa1)#Fales#......
  • 实际参数和形式参数的区别
    实际参数是出现在函数调用圆括号中的表达式.形式参数是函数定义的函数头中声明的变量.#include<stdio.h>#defineLIMIT65voidstarbar(void)//函数定义{intco......
  • slice()和splice()区别
    slice()slice()方法:选取数组的一部分,并返回一个新数组该方法不会改变原始数组,而是将截取到的元素封装到一个新数组中返回语法:array.slice(start,end),参数的介绍如下:1.......
  • String、StringBuffer 和 StringBuilder 的区别是什么?
    String是只读字符串,它并不是基本数据类型,而是一个对象。从底层源码来看是一个final类型的字符串数组,一经定义,无法再增删改。每次对String的操作都会生成新的String......
  • 数组中push和concat的区别
    数组中的push和concatpush的定义向数组的末尾添加一个或更多元素,返回值为数组添加元素后的长度。concat的定义连接两个或更多的数组,并返回结果。该方法不会改变现......
  • vim中yy和y$的区别是什么?
    你这是完全理解错了。yy和y$的差别不是通过“多复制什么”来实现的,而是vim自己的特定逻辑。你用"+yy或者"*yy把一行复制进剪贴板然后在其他应用里粘贴,就不会有vim里“......
  • null和undefined的区别、数组和伪数组的区别
    null和undefined的区别undefined:字面意思是未定义的值,语义是希望表示一个变量最原始的状态,而非人为操作的结果。这种原始状态会在以下四个场景中出现:声明了一个变量但......