【发布时间】:2020-10-20 18:01:18
【问题描述】:
我有一个窗口/属性对象,我用 forEach 循环遍历它 - window.gaData["UA-MY-ID-NUMBER"].experiments 并包含两个键值。
以及位于对象中的数据:
{KGtpiL5KTAee3Dj6w7GRaA: "1", FPX0F0xuTaOzWE7b14odbg: "0"}
你可以看到,一个值显然是“0”。
我想遍历这个对象,只显示键值,如果值为 0。
但是,当我 forEach 循环遍历我的对象时,由于某种原因,我的“0”被转换为 1,我不知道为什么。
以下是我循环对象的方式:
Object.keys(window.gaData["UA-MY-ID-NUMBER"].experiments).forEach(function(key, value){
if (window.gaData["UA-MY-ID-NUMBER"].experiments[key] === "0") {
console.log('key, value: ', key, value);
result += `
<div>
<p value="${key}">${key}:Experiement: ${key} is set to variant: ${value}</p>
<button id="${key}">Switch variant</button>
</div>
`
document.getElementById('variant-0-container').innerHTML = result;
}
});
下面是 console.log 进入我的浏览器的内容:
key, value: FPX0F0xuTaOzWE7b14odbg 1
window.gaData["UA-MY-ID-NUMBER"].experiments
{KGtpiL5KTAee3Dj6w7GRaA: "1", FPX0F0xuTaOzWE7b14odbg: "0"}
我不知道为什么会这样。
任何指针?
我还尝试将 if 语句中的条件更改为 === 0、== "0" 甚至 == 0,这给了我相同的输出。
【问题讨论】:
-
您没有显示
value是如何声明/定义的。您的部分代码丢失。 -
@Greedo 实际上正确更新了它,为没有正确添加我的编码而道歉。不小心错过了。
标签: javascript string for-loop object foreach