Bỏ qua
let colors = ['red', 'green', 'blue'];

for (let i in colors) {
   console.log(i); // "0", "1", "2"
}

for (let i of colors) {
   console.log(i); // "red", "green", "blue"
}

for-in

  • Lặp qua các key của enumerable properties trong một object
  • Dùng được cho String, Array, or những object đơn giản, nhưng không phải với các object như Map() hoặc Set()

for-of

  • Lặp qua các phần tử của một iterable object
  • Dùng được cho Array, String, Map hoặc Set object, nhưng nó không sử dụng trên những object đơn giản

Nguồn:: Sự khác biệt giữa for-.in, for-.of and forEach trong javascript

Trường hợp dùng for-in

Nếu chạy qua từng phần tử trong mảng mà sau đó cần dùng lại indexOf, thì không nên dùng for-of, vì indexOf() chỉ trả về giá trị đầu tiên.

for (const i of vậtThểTừCâuNhập) {
        for (const k in i[0]) {
            const vịTríTrongCâuNhập = i[2][k]
            if (i[0][k].split(' ').length === 1) {
                danhSáchTừĐơnTrongCâuNhập.push([i[0][k], vịTríTrongCâuNhập])
            } else {
                danhSáchTừGhépTrongCâuNhập.push([i[0][k], vịTríTrongCâuNhập])
            }
            console.log(i[0][k], vịTríTrongCâuNhập, k, danhSáchTừĐơnTrongCâuNhập)
        }
    }

Dùng map tiện hơn dùng for vì nó tạo ra một mảng mới cho mình và không cần phải lo mảng cũ bị sửa đổi