如何使用变量引用对象字段? [复制]

Posted

技术标签:

【中文标题】如何使用变量引用对象字段? [复制]【英文标题】:How to refer to object fields with a variable? [duplicate] 【发布时间】:2011-04-02 15:18:09 【问题描述】:

假设我有一个对象:

var obj = "A":"a", "B":"b", "x":"y", "a":"b"

当我想引用“A”时,我只写obj.A

当我输入变量时如何做,即:

var key = "A";

是否有任何返回值或null(如果键不在对象中)的函数

【问题讨论】:

【参考方案1】:

怎么样:

json[key]

试试:

json.hasOwnProperty(key)

关于您问题的第二部分(请参阅Checking if a key exists in a javascript object?)

【讨论】:

【参考方案2】:

使用括号表示法,如下所示:

var key = "A";
var value = json[key];

在 JavaScript 中,这两个是等价的:

object.Property
object["Property"];

为了清楚起见,这不是 JSON 特定的,JSON 只是对象表示法的一个特定子集……这适用于任何 JavaScript 对象。如果它不在对象中,则结果将为undefined,you can try all of this here。

【讨论】:

+1。请注意,虽然您提到的两种形式仅当属性不是保留字时才等效...其中在JS中有很多,并且有不少是出乎意料的。所以从这个意义上说object["Property"] 更安全。 OTOH,object.Property 的优势是(当 Property 是静态已知时)像 JSLint 这样的工具可以对它们进行检查。

以上是关于如何使用变量引用对象字段? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用变量在 Access 表单上引用字段?

如何使变量/对象在 Javascript 中只读? [复制]

面试简单整理之克隆

ThreadLocal内存泄露原因,如何避免

使用 Django,如何添加引用同一个表的外键列? [复制]

Angular @Input 数组 - 如何引用不同的数组对象字段名称?