Day 18 - for in & for of loop

for in

可以用在 object,也可以用在 Array

  • 使用 for in 列举一个 object 的 property
let obj = {
  name:"Mary",
  number:20
};
for(let i in obj){
  console.log(i);
}
// name
// number
  • 使用 for in 列举在 object 里 property 的 value
let obj = {
  name:"Mary",
  number:20
};
for(let i in obj){
  console.log(obj[i]);
}
// Mary
// 20

在 object 内可以被列举出的 properties 都是 variable 所代表的涵义
以下面的例子来看,num 这个 array 的 property 是 i 这个变数代表的涵义,所以结果只会有 0 1 2

let num = [10,35,50];
for(let i in num){
  console.log(i)
}
// 0
// 1
// 2

如果要找到 10,35,50 这三个数字的话,则要改成下面这样

let num = [10,35,50];
for(let i in num){
  console.log(num[i])
}
// 10
// 35
// 50

for of

for of 只能用於 iterable objects(可迭代的物件),例如:String, Array, Map, Set, Nodelist...等。

  • 阵列迭代
let numbers = [1,2,3];
for(let i of numbers){
  console.log(i);
}
// 1
// 2
// 3
  • 字串迭代
let text = "happy";
for(let i of text){
  console.log(i);
}
// h
// a
// p
// p
// y
  • 如果对物件做 for of 会出错,因为物件是不可迭代的
let obj = {
  name:"Harry",
  age: 20
};
for(let i of obj){
  console.log(i);
}

执行上面的程序码,会显示 Uncaught TypeError: obj is not iterable

补充:
关於 Map 和 Set 可以参考 Map and Set


<<:  企划实现(4)

>>:  [Day-10] 巢状式if

< 关於 React: 开始打地基| function、class function >

09-05-2021 React Component 是基於元件化的思考模式 本章内容 Compon...

DAY 30- NFT & 结语

最後一篇,想说讲一下最近很夯的NFT,做为一个结尾。 NFT Non-Fungible Token,...

EP20 - 整合 Jenkins 自动部署到 EKS

之前我们自动部署的时候, 没有在 Jenkins Server 上 config aws, 而是起一...

浅谈MVVM

几个框架名称MVC/MVP/MVVM MVC: Model, View, Control MVP: ...

第 8 集:Gird System 格线系统

此篇会简单介绍格线系统原理以及使用技巧。 Bootstrap5 格线系统是基於 flex,想活用格线...