访问Javascript对象键

时间:2018-02-06 00:37:04

标签: javascript javascript-objects

我正在努力弄清楚如何做到这一点(看起来很简单)。

我有一个Javascript对象,如图所示

console.log(数据)的输出:

{"prevExists":false,"pubKey":"b5","ID":"5f1"}

我正在尝试访问不同的键值对。

当我尝试预期的方法时,我得到了未定义的。

我试过了:

var pubKey = "pubKey";
data.pubKey
data[pubkey];
data["pubKey"];

我知道我错过了一些非常明显的东西。

5 个答案:

答案 0 :(得分:1)

您可以使用Object.keysforeach循环来访问对象上的属性。



var data = {"prevExists":false,"key":"b5","ID":"5f1"};

Object.keys(data).forEach(function(key) {
    console.log('key - ' + key + ' :: value - ' + data[key]);
});




答案 1 :(得分:1)

首先,您需要创建对象的引用。像这样:

var myObj = { "prevExists": false, "key": "b5", "ID": "5f1" };

然后,您可以使用键访问元素:

console.log(myObj["prevExists"]);

控制台退出:

false
祝你好运!

答案 2 :(得分:1)

使用Object.keys方法



var data = {"prevExists":false,"pubKey":"b5","ID":"5f1"}
console.log(Object.keys(data));




Object.keys()

  

Object.keys()方法返回给定对象自己的可枚举属性的数组,其顺序与for...in循环提供的顺序相同(不同之处在于for-in循环枚举原型链中的属性。)

答案 3 :(得分:1)

您可以通过多种方式访问​​密钥,具体取决于您正在谈论的密钥。

在您的示例中,任何一个都可以工作:

var data = {
    "prevExists":false,
    "pubKey":"b5",
    "ID":"5f1"
};

// Access all keys of enumerable string-keyed properties
Object.keys(data).forEach((key) => console.log(key,data[key]));
// Access all keys of enumerable and non-enumerable string-keyed properties
Object.getOwnPropertyNames(data).forEach((key) => console.log(key,data[key]));
// Access all keys of enumerable string-keyed properties of your object, its prototype, and all the prototype chain...
for (let key in data)
    console.log(key,data[key]);

如果您想更好地了解对象的属性,可以查看我在该主题上撰写的this recent answer

答案 4 :(得分:0)

您对line var pubKey =“pubKey”感到困惑。 有两种方法可以访问对象参数:

const data = {"prevExists":false,"pubKey":"b5","ID":"5f1"};
// var pubKey = "pubKey"; This line is not needed

1)data.pubKey

如果使用点运算符(。),则使用键名称引用它。

2)data [“pubKey”];

如果使用方括号([]),则使用与密钥匹配的字符串。

如果添加以下行:

const pubKey = "pubKey";

,那么数据[pubKey]也可以工作,因为它的计算结果为[“pubKey”]