以下是生成哈希的代码,现在我试图遍历哈希但没有运气



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; }

08-08 05:07