Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么';此JavaScript对象键是否与同名字符串匹配?_Javascript_Object_Key - Fatal编程技术网

为什么';此JavaScript对象键是否与同名字符串匹配?

为什么';此JavaScript对象键是否与同名字符串匹配?,javascript,object,key,Javascript,Object,Key,下面是测试对象的基本比较 var testObj = {"hey":"blue"}; alert(Object.keys(testObj)); // alerts hey if (Object.keys(testObj) === "hey") { alert('matches'); } 第一个警报生成“hey”,它与if语句比较“hey”的右侧相匹配,但是警报(“matches”)没有触发,这是为什么 编辑:抱歉,愚蠢的问题“对象。键(testObj)”返回一个数组。所以基本上你需要比较一

下面是测试对象的基本比较

var testObj = {"hey":"blue"};
alert(Object.keys(testObj)); // alerts hey
if (Object.keys(testObj) === "hey") {
  alert('matches');
}
第一个警报生成“hey”,它与if语句比较“hey”的右侧相匹配,但是警报(“matches”)没有触发,这是为什么

编辑:抱歉,愚蠢的问题

对象。键(testObj)”返回一个数组。所以基本上你需要比较一个数组。 请尝试下面的代码片段

var testObj={“嘿”:“蓝色”};
警报(Object.keys(testObj));//警报嘿
log(Object.keys(testObj));
if(Object.keys(testObj)[0]=“嘿”){
警报(“匹配”);
}
Object.keys()
方法返回给定对象自身可枚举属性的数组。因此需要从该数组中获取
索引

var testObj={
“嘿”:“蓝色”
};
警报(Object.keys(testObj));//警报嘿
//[0]将是数组中的第一个元素
if(Object.keys(testObj)[0]=“嘿”){
警报(“匹配”);
}
是返回数组而不是字符串。请参阅
控制台。log
hey
是第一个数组优先参数。因此您可以像这样匹配
对象。键(testObj)
它们将显示
hey

var testObj={
“嘿”:“蓝色”
};
console.log(Object.keys(testObj));//警报嘿
if(Object.keys(testObj)[0]=“嘿”){
log('matches');

}
您必须指定索引编号才能使用:选中此项


函数myfn()
{
var testObj={“嘿”:“blue”};
警报(Object.keys(testObj));//警报
if(Object.keys(testObj)[0]=“嘿”){
警报(“匹配”);
}
}
Object.keys(obj)
重新启动一个数组,因此如果对象中有多个键,则可以在其上循环匹配

var testObj={“嘿”:“蓝色”、“某物”:“其他”};
console.log(Object.keys(testObj));//警报嘿
Object.keys(testObj).forEach(函数(键){
如果(键==“嘿”){
警报(“匹配”);
}

})
什么
对象。键
返回?字符串/数组?使用
Object.keys(testObj)[0]===“嘿”
顺便说一句,如果您使用
==
进行比较,它就会起作用。请始终阅读有关您正在使用的函数的文档。另外,一点
console.log
也不会有什么坏处。区分类型的比较总是一件好事。我会承认我的第一手错误,没有提供完整的代码。我遵循了与您所展示的相同的结构,但是当我有一个直接匹配时,它就不起作用了。让我用带有切换值的代码副本更新我的问题。当然。我会尽力帮助你的。不,就是这样,即使只有一个值,你也必须指定,这很奇怪。