以下是生成哈希的代码,现在我试图遍历哈希但没有运气
let intArr = [2, 2, 3, 4, 4, 3, 3]
let cntArr = {};
for (let index in intArr) {
cntArr[intArr[index]] = intArr[index] + 1
}
console.log(cntArr);
console.log(cntArr.length) // undefined
for(let [key, value] in Object.entries(cntArr))
{
console.log(value+' '+key); //undefined 0 ????
}
cntArr是类型对象,令我感到困惑的是为什么我无法获得迭代哈希..我会丢失什么。
最佳答案
对象没有length
属性-如果要遍历对象,可以在forEach
上使用Object.keys
:
let intArr = [2, 2, 3, 4, 4, 3, 3]
let cntArr = {};
for (let index in intArr) {
cntArr[intArr[index]] = intArr[index] + 1
}
console.log(cntArr);
console.log("Length of cntArr: ", Object.keys(cntArr).length);
Object.keys(cntArr).forEach(key => console.log(key, cntArr[key]));
.as-console-wrapper { max-height: 100% !important; top: auto; }
如果要遍历对象的键和值:
let intArr = [2, 2, 3, 4, 4, 3, 3]
let cntArr = {};
for (let index in intArr) {
cntArr[intArr[index]] = intArr[index] + 1
}
console.log(cntArr);
for (let [key, value] of Object.entries(cntArr)) {
console.log(key, value);
}
.as-console-wrapper { max-height: 100% !important; top: auto; }