繁体   English   中英

访问Javascript对象键

[英]Accessing Javascript Object Keys

我正在最努力地弄清楚该怎么做(似乎很简单)。

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

console.log(data)的输出:

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

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

当我尝试预期的方法时,我将返回未定义状态。

我努力了:

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

我知道我在这里确实缺少一些明显的东西。

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

 var data = {"prevExists":false,"key":"b5","ID":"5f1"}; Object.keys(data).forEach(function(key) { console.log('key - ' + key + ' :: value - ' + data[key]); }); 

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

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

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

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

控制台出口:

false

祝好运!

使用Object.keys方法

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

Object.keys()

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

您有几种访问键的方法,具体取决于您所谈论的键。

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

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]);

如果您想更好地了解什么是对象的属性,可以看看我在主题上写的这个最新答案

您将自己与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";

,那么data [pubKey]也将起作用,因为它的计算结果为data [“ pubKey”]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM