gpt4 book ai didi

javascript - javascript 迭代对象元素

转载 作者:行者123 更新时间:2023-11-28 03:19:09 26 4
gpt4 key购买 nike

我试图理解这一点:

  function keyValue(array) {
var modeObj = {};
var i=0;
// create modeObj
array.forEach(function(num){

if (!modeObj[num]) {
modeObj[num] = 0;

}
modeObj[num]++;

console.log("1 list object keys "+Object.keys(modeObj));
console.log("2 list object value "+Object.values(modeObj));
i++;
console.log("3 iteration num "+i);
});
}

当迭代数组 [1,4,5,4,6,1] 时,结果如下:

1 list object keys 1
2 list object value 1
3 iteration num 1
1 list object keys 1,4
2 list object value 1,1
3 iteration num 2
1 list object keys 1,4,52 list object value 1,1,1
3 iteration num 31 list object keys 1,4,5
2 list object value 1,2,1
3 iteration num 4
1 list object keys 1,4,5,62 list object value 1,2,1,1
3 iteration num 5
1 list object keys 1,4,5,6
2 list object value 2,2,1,1
3 iteration num 6

如果在文献中发现“Object.keys方法用于返回简单数组的可枚举属性”。从数组 [1,4,5,4,6,1] 可以清楚地看出,键 1 和键 4 在数组中出现了两次。如果我们检查所有相应键的值,我们可以看到键值代表部分键出现的次数。键 [1,4,5,6],值 - 2,2,1,1。

在第一行中,声明了新对象,然后对数组进行迭代,并将其发送到函数“keyValue()”中。数组 [1,4,5,4,6,1]。

通过表达式“var modeObj = {};”仅声明了空对象。

if(!modObj[element]) 检查迭代中对象的键(元素)是否未定义或具有某个值。如果键不存在,则值 0 将作为值添加到迭代中的当前键中。稍后,将通过表达式“modeObj[num]++;”将其更改为值1

我不确定的是我对表达式 modObj[element]++; 的解释,我相信它可以用两个步骤来解释:

第一步:modObj[element]= modObj[element]

第二步:则modObj[element]=modObj[element]+1

这意味着 modObj[element] 将增加特定键的值,如果该键是唯一的,则仅添加 1,这将代表该键出现的次数,如果是该键的第二次或任何其他出现都会在现有出现次数上加 1。

正确吗?

最佳答案

只需在浏览器的开发人员工具中尝试此代码即可。

modeObj[num]++ 将创建一个以 num 作为键和 NaN 的 KVP(因为那里没有数字增量...如果 key 确实存在,并且具有有效数字作为其值,则该数字将增加 1) 作为值。

因此 modeObj[1] 导致 modeObj 为:{1: NaN}

关于javascript - javascript 迭代对象元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59335841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com