for in和for of的区别
循环对象
let objKey = {name: '牛恒', age : 23 , sex:'男' }
// for in 专门用来循环对象 ,key是对象的键, obj[key]是对象的值
for (let value in objKey) {
console.log('objKey ----- value', value)
// objKey ----- value name
// index.tsx:30 objKey ----- value age
// index.tsx:30 objKey ----- value sex
}
// ***for of 循环对象会报错
// 只能循环数组或者字符串类型
// react-dom.development.js:11340 Uncaught TypeError: objKey is not iterable
for (let value of objKey) { // error ; 类型“{ name: string; age: number; sex: string; }”不是数组类型或字符串类型。
console.log('value', value)
}
循环数组
let sliceKey = ['红包', '返现', '首充', '权益']
/** for in 和 for of 都可循环数组
* 其中 for in 循环的是数组的键, 即下标
* 同对象键值对取值 obj[key]
*/
// for in 功能强大,可循环对象和数组,(即使取值也可obj[key]) ,完全可替代for of
// for of 循环的是数组的值, 即键值
for (let key in sliceKey) {
console.log('arrKey', key)
// index.tsx: 39 arrKey 0
// index.tsx: 39 arrKey 1
// index.tsx: 39 arrKey 2
// index.tsx: 39 arrKey 3
}
for (let value of sliceKey) {
console.log('ValueKey', value)
// index.tsx:47 ValueKey 红包
// index.tsx:47 ValueKey 返现
// index.tsx:47 ValueKey 首充
// index.tsx:47 ValueKey 权益
}