Javascript forEach of object with value“;0“;,返回的是整数1

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/property对象,我用forEach-
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不是最好的,但当我试图分析代码时,这是唯一可能的原因