我有一个 JSON 对象数组 imdb
,我想检查某个键是否存在。我尝试了几种不同的方法,但没有一个显示出正确的结果。我调查了this post但没有帮助。下面的代码
var imdb = [{"123":"hi"}, {"234":"hello"}]; //array of JSON object
var valEventTime = 123; //key I want to find if exists
//approach 1
function getValueByKey(key, data) {
var i, len = data.length;
for (i = 0; i < len; i++) {
if (data[i] && data[i].hasOwnProperty(key)) {
return data[i][key];
}
}
return -1;
}
if(getValueByKey(valEventTime, imdb) > -1){
console.log("Yes");
}
else {
console.log("NOT")
}
//approach 2
if (imdb[valEventTime]) {
console.log("Yes");
} else {
console.log("NOT")
}
//approach 3
var keys=Object.keys(imdb)
for(var i=0;i<keys.length;i++){
if(keys[i]==valEventTime)
{//check your key here
console.log("Yes")
}
else console.log("NOT")
}
即使我正在搜索已经存在的 key (123
),输出始终显示 NOT
。请建议。
最佳答案
您的解决方案的问题是您正在尝试搜索整数键,而您的 json 键是字符串。
var imdb = [{"123":"hi"}, {"234":"hello"}]; // key is string
var valEventTime = 123; // key is integer
var imdb = [{"123":"hi"}, {"234":"hello"}];
var valEventTime = "123";
var obj = imdb.some((val) => {
return Object.keys(val).includes(valEventTime);
})
console.log(obj);
关于javascript - NodeJS : How to check if a key exists in an array of JSON object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46763906/