javascript - 如何在不循环的情况下从函数参数中指定的json数组中获取key?

标签 javascript jquery json

我有示例 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/

相关文章:

javascript - jQuery 在连续计算多个输入时返回 NaN 值

javascript - 听Javascript多CSS动画

javascript - ES6 Module Loader中简单import语句和System.import的区别

javascript - 如何获取特定类元素的段落元素的高度(js/jquery)

jquery - 用 jquery 改变几个 div css onload (this)

java - 当字段不存在而没有自定义反序列化时,如何强制 GSON 反序列化异常?

php - 使用 Ajax 和 PHP 进行数据输出

javascript - jQuery 下拉菜单打开所有子菜单

json - 从 Go 中的 JSON 文件打印值

json - 在 GREL 中解析多值 JSON (OpenRefine)