Javascript json,如何检查密钥?

Javascript json,如何检查密钥?,javascript,json,Javascript,Json,我在两个地方重用javascript中的函数 在这个方法中,我调用并检索一个json对象(数据) 在其中一种情况下,我知道键“status”不在那里,我需要使用硬编码的值,但由于这两种情况下的代码都是共享的,所以我需要捕获这种情况 是否有一种get方法可以安全地检查密钥,如果它不存在,我将使用硬编码值 data[0].fields.get('status') ? 或者有更好的方法吗?通常: var status = data[0].fields['status'] || "default";

我在两个地方重用javascript中的函数

在这个方法中,我调用并检索一个json对象(数据)

在其中一种情况下,我知道键“status”不在那里,我需要使用硬编码的值,但由于这两种情况下的代码都是共享的,所以我需要捕获这种情况

是否有一种get方法可以安全地检查密钥,如果它不存在,我将使用硬编码值

data[0].fields.get('status') ?
或者有更好的方法吗?

通常:

var status = data[0].fields['status'] || "default";
正如所指出的,这可能会产生虚假价值观的不良行为

此外,除了操作符中的
,您还可以使用方法。

通常:

var status = data[0].fields['status'] || "default";
正如所指出的,这可能会产生虚假价值观的不良行为

此外,除了
操作符中的
,您还可以使用方法。

使用检查对象上是否存在属性:

if ('status' in data[0].fields) …
如果潜在值为truthy,也可以使用简单的布尔计算,因为
undefined
的计算结果为false。您甚至可以在以下情况下使用:

使用检查对象上是否存在属性:

if ('status' in data[0].fields) …
如果潜在值为truthy,也可以使用简单的布尔计算,因为
undefined
的计算结果为false。您甚至可以在以下情况下使用:


您需要知道,某些严格的ECMAScript程序不接受将发布到此处的某些方法。您需要知道,某些严格的ECMAScript程序不接受将发布到此处的某些方法。虽然这对于许多受控情况来说是非常好的简写,但您应该指出,如果
data[0]。字段['status']
已设置,但falsy它将无法“默认”,这可能不是OP想要的。虽然这对于许多受控情况来说是很好的速记,但您应该指出,如果
数据[0]。字段['status']
已设置,但falsy它将无法“默认”这可能不是OP想要的。这不起作用。值本身是
未定义的
-您最好在
中使用
(也较短)。这不起作用。值本身是
未定义的
-您最好在
中使用
(也较短)
if ( typeof data[0].fields['status'] === 'undefined' ) data[0].fields['status'] = 'hardcoded value';
// your code goes on here