(JavaScript) 常见遍历方式

前言

JavaScript 中千奇百怪的语法很多

本文记录下楼主以前常用的遍历方式

由于楼主并非jser,仅会简单code,仅作简单code展示和表述

Code

数组

基本方式

最常见的for三段式遍历

let arr = [111, 222, 333, 444, 555]

for (let idx = 0; idx < arr.length; idx += 1) {
    
    
    console.log("arr[", idx, "] = ", arr[idx])
}

in遍历

获取下标,再通过下标访问元素

let arr = [111, 222, 333, 444, 555]

// in 遍历下标
for (let idx in arr) {
    
    
    console.log("arr[", idx, "] = ", arr[idx])
}

of遍历

迭代元素,每次迭代是一个副本

let arr = [111, 222, 333, 444, 555]

console.log(arr)
// of 遍历元素
// `num` 是副本不是引用
for (let num of arr) {
    
    
    console.log(num)
    num += 1
}
console.log(arr)

字符串

同数组

let str = "Hello World!"

for (let idx in str) {
    
    
    console.log("str[" + idx + "] = " + str[idx])
}

for (let ch of str) {
    
    
    console.log(ch)
}

JSON对象

in遍历可以获得其健值

let jsonObj = {
    
    
    name: "Peak",
    age: 18
}

for (let key in jsonObj) {
    
    
    console.log("objArr[", key, "] = ", jsonObj[key]);
    console.log(typeof jsonObj[key])
}

Map

和C++17的结构化绑定很像,但都是副本

let mp = new Map()

// num num
mp.set(123, 114514)

// num (num -> str)
mp.set(1, 12345)
mp.set(1, "-012345")

// str num
mp.set("1", Infinity)

// str str
mp.set("strKey", "value")

// str undefined
mp.set("emptyKey")

// 健与值 都是副本
for (let [key, val] of mp) {
    
    
    console.log(key, '=', val)
    console.log(typeof (val) + '\n')
}



END

猜你喜欢

转载自blog.csdn.net/CUBE_lotus/article/details/131036903
今日推荐