从JavaScript中获取对象的值

我有这个对象:

var data = {"id": 1, "second": "abcd"}; 

这些是来自表单的值。 我通过这个函数进行validation。

如果上述属性存在,我们可以使用data["id"]data["second"]来获取它们的值,但有时候,根据其他值,属性可能会不同。

我如何从独立于属性名称的data获取值?

要在不知道这些属性名称的情况下访问对象的属性,可以使用for ... in循环:

 for(key in data) { if(data.hasOwnProperty(key)) { var value = data[key]; //do something with value; } } 

如果你想在一行中做到这一点,请尝试:

 Object.keys(a).map(function(key){return a[key]}) 

在ES2017中,您可以使用Object.values()

 Object.values(data) 

在撰写本文时,支持是有限的(FireFox和Chrome)。 除IE以外的所有主stream浏览器都支持这一function。

在ES2015中,你可以使用这个:

 Object.keys(data).map(k => data[k]) 

如果你定义了$ ,那么你可以迭代

 var data={"id" : 1, "second" : "abcd"}; $.each(data, function() { var key = Object.keys(this)[0]; var value = this[key]; //do something with value; }); 

您可以通过以下方式访问它:如果您知道键的值

 data.id 

要么

 data["id"] 

对不起,你的结论性的问题不是很清楚,但你从第一行就是错的。 variables数据是一个对象而不是数组

要访问一个对象的属性是非常简单的:

 alert(data.second); 

但是,如果这不能完全回答你的问题,请澄清并回传。

谢谢 !

使用lodash _.values(object)

 _.values({"id": 1, "second": "abcd"}) [ 1, 'abcd' ] 

lodash包含了一大堆其他的函数来处理数组,对象,集合,string等等,你希望这些函数被构build到JavaScript中(实际上似乎正慢慢地进入语言)。

使用

的console.log(variables)

如果您使用Ctrl + Shift + j使用谷歌浏览器打开控制台

转到>>控制台