Javascript 通过按下值检查数组中是否存在键
有人能告诉我为什么每次我想检查数组中的密钥是否可用时,我得到的结果是Javascript 通过按下值检查数组中是否存在键,javascript,Javascript,有人能告诉我为什么每次我想检查数组中的密钥是否可用时,我得到的结果是false?请参见下面的示例 var obj=new Array(); 对象推送({名称:“test1”,值:“10”}); 对象推送({name:“test2”,value:“40”}); //obj中的var inobject=“name;”/结果:错误 //obj中的var inoobject=“test1;”/结果:错误 //对象中的var inoobject=“10”;//结果:错误 obj中的var inoobje
false
?请参见下面的示例
var obj=new Array();
对象推送({名称:“test1”,值:“10”});
对象推送({name:“test2”,value:“40”});
//obj中的var inobject=“name;”/结果:错误
//obj中的var inoobject=“test1;”/结果:错误
//对象中的var inoobject=“10”;//结果:错误
obj中的var inoobject=“value”;
$('body')。追加(“”+inobject+””代码>
您正在检查数组中是否存在“值”,而不是数组中的元素。要正确检查数组元素中是否存在“value”,您需要寻址obj[i]
。像这样:
var obj = new Array();
obj.push({ name: "test1", value: "10" });
obj.push({ name: "test2", value: "40" });
var inobject = "value" in obj[0];
console.log(inobject);
您正在检查数组中是否存在“值”,而不是数组中的元素。要正确检查数组元素中是否存在“value”,您需要寻址obj[i]
。像这样:
var obj = new Array();
obj.push({ name: "test1", value: "10" });
obj.push({ name: "test2", value: "40" });
var inobject = "value" in obj[0];
console.log(inobject);
由于obj中的“value”不是检查数组中是否存在值的方式,而且您有一个对象数组,这意味着您必须根据数组的元素而不是数组本身来检查值的存在性,因此您可以这样做:
var obj=new Array();
对象推送({名称:“test1”,值:“10”});
对象推送({name:“test2”,value:“40”});
var inobject=obj.some((a)=>a中的“值”);
console.log(inoobject);//如果为true,则表示它在那里
,因为obj中的“值”不是检查数组中是否存在值的方式,并且您有一个对象数组,这意味着您必须根据数组的元素而不是数组本身来检查是否存在,这是您的操作方式:
var obj=new Array();
对象推送({名称:“test1”,值:“10”});
对象推送({name:“test2”,value:“40”});
var inobject=obj.some((a)=>a中的“值”);
console.log(inoobject);//如果为true,则表示它在那里
问题在于,您试图检查该键是否存在于数组中,而不是数组中的对象上,因此正如预期的那样,这些键不匹配,因为它们在数组中不存在
如果要检查数组中的任何对象是否具有特定的键,则可以通过简单的循环执行此操作:
var found = false;
var search = "value";
for(var i = 0; i < obj.length; i++){
if(search in obj[i]){
found = true;
break;
}
}
var-found=false;
var search=“value”;
对于(变量i=0;i
或者将其拆分为一个漂亮的函数:
function doesKeyExist(var arr, var key){
for(var i = 0; i < obj.length; i++){
if(key in obj[i])
return true;
}
return false;
}
var inobject = doesKeyExist(obj, "value");
$('body').append("<p>"+ inobject + "</p>");
函数doesKeyExist(var-arr,var-key){
对于(变量i=0;i”;
如果要查找属性的值,可以执行以下操作:
function doesValueExistForKey(var arr, var key, var search){
for(var i = 0; i < obj.length; i++){
if(key in obj[i] && obj[i][key] === search)
return true;
}
return false;
}
var inobject = doesValueExistForKey(obj, "name", "test1");
$('body').append("<p>"+ inobject + "</p>");
函数doesValueExistForKey(var-arr、var-key、var-search){
对于(变量i=0;i”;
问题在于,您正在尝试检查该键是否存在于数组中,而不是数组中的对象上,因此正如预期的那样,这些键不匹配,因为它们在数组中不存在
如果要检查数组中的任何对象是否具有特定的键,则可以通过简单的循环执行此操作:
var found = false;
var search = "value";
for(var i = 0; i < obj.length; i++){
if(search in obj[i]){
found = true;
break;
}
}
var-found=false;
var search=“value”;
对于(变量i=0;i
或者将其拆分为一个漂亮的函数:
function doesKeyExist(var arr, var key){
for(var i = 0; i < obj.length; i++){
if(key in obj[i])
return true;
}
return false;
}
var inobject = doesKeyExist(obj, "value");
$('body').append("<p>"+ inobject + "</p>");
函数doesKeyExist(var-arr,var-key){
对于(变量i=0;i”;
如果要查找属性的值,可以执行以下操作:
function doesValueExistForKey(var arr, var key, var search){
for(var i = 0; i < obj.length; i++){
if(key in obj[i] && obj[i][key] === search)
return true;
}
return false;
}
var inobject = doesValueExistForKey(obj, "name", "test1");
$('body').append("<p>"+ inobject + "</p>");
函数doesValueExistForKey(var-arr、var-key、var-search){
对于(变量i=0;i”;
in操作员检查钥匙。您的阵列具有以下键:
0,1
所以
正确。in操作员检查钥匙。您的阵列具有以下键:
0,1
所以
为true。您只能搜索数组的键或类似以下的值:
var obj=new Array(),
el1,el2
push(el1={name:“test1”,value:“10”});
推送(el2={name:“test2”,value:“40”});
$('body')。追加(“检查键1:”+(obj中的1)+“”;
$('body')。追加(“检查元素el1:”+(obj.indexOf(el1)>=0)+“”代码>
您只能搜索数组的键或类似以下的值:
var obj=new Array(),
el1,el2
push(el1={name:“test1”,value:“10”});
推送(el2={name:“test2”,value:“40”});
$('body')。追加(“检查键1:”+(obj中的1)+“”;
$('body')。追加(“检查元素el1:”+(obj.indexOf(el1)>=0)+“”代码>
如果要查找集合中任何对象(第一级)中存在的键,则不要执行此操作
obj中的“值”代码>你可以做obj.some(e=>“value”在o中)代码>
//名称是obj,但实际上是一个数组
var obj=新数组();
对象推送({名称:“test1”,值:“10”});
对象推送({name:“test2”,value:“40”});
函数checkForKey(列表,键){
返回列表。一些(e=>输入e);
}
log('Key[name]:',checkForKey(obj,'name');
log('Key[age]:',checkForKey(obj,'age');
log('Key[value]:',checkForKey(obj,'value')代码>如果要查找集合中任何对象(第一级)中存在的键,则不要执行此操作