我有示例 json 数组:
var jsonArray = '{"name":"Otabek","lastName":"Mansurov","age":"16"}';
我有示例函数:
function getError(jsonArray, arrayKeyFromJsonArray) {
var looping = $.parseJSON(jsonArray);
$.each(looping, function(key, value) {
if(key.toLowerCase() == arrayKeyFromJsonArray.toLowerCase()) {
console.log(key + '=' + value);
} else console.log("Sorry, I can't found key " + arrayKeyFromJsonArray + " from array!");
});
}
使用示例:
getError(jsonArray, 'age'); // Return: age = 16
是否可以在不循环的情况下从数组中找到 key ?
新函数伪代码示例:
function getError(jsonArray, arrayKeyFromJsonArray) {
return jsonArray.arrayKeyFromJsonArray;
}
最佳答案
使用惰性样式是不可能的,因为键区分大小写。
您可以使用Array#find
并检查该值,如果不是未定义
,则将其作为对象的键。
function getError(json, search) {
var object = JSON.parse(json),
key = Object.keys(object).find(k => k.toLowerCase() === search.toLowerCase());
return key !== undefined
? object[key]
: "Sorry, I can't find key " + search + " in array!"
}
var json = '{"name":"Otabek","lastName":"Mansurov","age":"16"}';
console.log(getError(json, 'age'));
console.log(getError(json, 'lastname'));
console.log(getError(json, 'foo'));
关于javascript - 如何在不循环的情况下从函数参数中指定的json数组中获取key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230979/