Javascript forEach of object with value“;0“;,返回的是整数1
我有一个window/property对象,我用forEach-Javascript forEach of object with value“;0“;,返回的是整数1,javascript,string,for-loop,object,foreach,Javascript,String,For Loop,Object,Foreach,我有一个window/property对象,我用forEach-window.gaData[“UA-MY-ID-NUMBER”]循环它。实验包含两个键值 以及位于对象中的数据: {KGtpiL5KTAee3Dj6w7GRaA: "1", FPX0F0xuTaOzWE7b14odbg: "0"} 您可以看到,一个值显然是“0” 如果键值为0,我希望循环遍历此对象并仅显示键值。 然而,当我forEach在我的对象中循环时,由于某种原因,我的“0”被转换为1,
window.gaData[“UA-MY-ID-NUMBER”]循环它。实验
包含两个键值
以及位于对象中的数据:
{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;
}
});
key, value: FPX0F0xuTaOzWE7b14odbg 1
window.gaData["UA-MY-ID-NUMBER"].experiments
{KGtpiL5KTAee3Dj6w7GRaA: "1", FPX0F0xuTaOzWE7b14odbg: "0"}
我不知道为什么会这样
有什么建议吗
我还尝试将if语句中的条件更改为
==0
,==“0”
,甚至==0
,这给了我相同的输出。这是因为在Array.prototype.forEach()
中,第二个参数是循环的索引,而不是正在循环的对象的值。
更多关于
window.gaData={“UA-MY-ID-NUMBER”:{};
实验={kgtpil5ktae3dj6w7graa:“1”,FPX0F0xuTaOzWE7b14odbg:“0”};
Object.keys(window.gaData[“UA-MY-ID-NUMBER”]。实验)。forEach(函数(键){
var值=window.gaData[“UA-MY-ID-NUMBER”]。实验[关键]
如果(值=“0”){
log('键,值:',键,值);
}
});代码>您没有显示如何声明/定义值
。您的部分代码丢失。@Greedo实际上正确地更新了它,对没有正确添加我的代码表示歉意。不小心漏掉了。请不要假设OP的代码。让他们更新他们的问题。非常感谢@greedo!我知道答案很简单/显而易见,但谢谢你。我会好好读一读,进一步了解这个问题!再次感谢-这起作用了@我知道FelixKling不是最好的,但当我试图分析代码时,这是唯一可能的原因