从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使用谷歌浏览器打开控制台
转到>>控制台