Javascript—读取JSON属性的值,如果该键不存在,则在一行中返回null

Javascript—读取JSON属性的值,如果该键不存在,则在一行中返回null,javascript,python,json,Javascript,Python,Json,让我用python来比喻我正在寻找的东西: fruits_dict = {"banana": 4, "apple": 3} num_apples = fruits_dict.get("apple", None) num_oranges = fruits_dict.get("orange", None) print(num_apples, num_oranges) 印刷品: 3无 现在在Javascript中,使用类似的JS对象,我们可以在if块中使用hasOwnPropertykey 给出:

让我用python来比喻我正在寻找的东西:

fruits_dict = {"banana": 4, "apple": 3}
num_apples = fruits_dict.get("apple", None)
num_oranges = fruits_dict.get("orange", None)
print(num_apples, num_oranges)
印刷品: 3无

现在在Javascript中,使用类似的JS对象,我们可以在if块中使用hasOwnPropertykey

给出: 3空


有更好的办法吗?python的get函数行中有些东西?

您的代码确实没有问题,但编写起来会稍微简洁一些

num_oranges = ("orange" in fruits_obj) && fruits_obj.orange || null;
这也会在对象的原型链中找到一个名为orange的属性,如果这不重要的话。另外,请注意

num_oranges = fruits_obj.orange;

如果没有oranges属性,则会将undefined赋值给num_oranges,并且出于许多实际目的,undefined和null是可互换的。例如,undefined==null为true。

您的代码实际上没有什么问题,但编写起来会稍微简洁一些

num_oranges = ("orange" in fruits_obj) && fruits_obj.orange || null;
这也会在对象的原型链中找到一个名为orange的属性,如果这不重要的话。另外,请注意

num_oranges = fruits_obj.orange;

如果没有oranges属性,则会将undefined赋值给num_oranges,并且出于许多实际目的,undefined和null是可互换的。例如,undefined==null为true。

您可以在原型对象中实现动态get

get: function(key) {
    if (typeof this[key] == 'undefined') return null;
    return this[key]
}

您可以在原型对象中实现动态get

get: function(key) {
    if (typeof this[key] == 'undefined') return null;
    return this[key]
}

如果要从函数返回它,可以在单行中使用三元:

return fruits_obj.hasOwnProperty("orange") ? fruits_obj['orange'] : null;

如果要从函数返回它,可以在单行中使用三元:

return fruits_obj.hasOwnProperty("orange") ? fruits_obj['orange'] : null;
您正在寻找一个:

如果您想创建一个类似python get的函数,它可以是如下所示:

var getProp = function(object, key, default){
    return object.hasOwnProperty(key) ? object[key] : default;
};

var num_oranges = getProp(fruits_obj, "orange", null);
您正在寻找一个:

如果您想创建一个类似python get的函数,它可以是如下所示:

var getProp = function(object, key, default){
    return object.hasOwnProperty(key) ? object[key] : default;
};

var num_oranges = getProp(fruits_obj, "orange", null);
我们可以使用JavaScript

此运算符用作if语句的快捷方式

语法:

如果条件为true,则运算符返回expr1的值;否则,它将返回expr2的值

我们可以使用JavaScript

此运算符用作if语句的快捷方式

语法:

如果条件为true,则运算符返回expr1的值;否则,它将返回expr2的值


哇!美好的点符号看起来很棒,我想我会用它。在询问之前应该测试一下。谢谢哇!美好的点符号看起来很棒,我想我会用它。在询问之前应该测试一下。谢谢确切地这就是我要找的。另外,@Pointy告诉我们返回未定义的点符号也是一个很好的建议。谢谢确切地这就是我要找的。另外,@Pointy告诉我们返回未定义的点符号也是一个很好的建议。谢谢嘿,@Razzildinho已经给出了这个答案。无论如何,谢谢。嘿,这个答案已经由@Razzildinho给出了。无论如何,谢谢你。