我有这个对象:
var data = {"id": 1, "second": "abcd"};
这些是来自表单的值。我将它传递给一个函数进行验证。
如果存在上述属性,我们可以使用 和 获取它们的值data["id"]
,data["second"]
但有时,基于其他值,属性可能会有所不同。
如何data
独立于属性名称获取值?
我有这个对象:
var data = {"id": 1, "second": "abcd"};
这些是来自表单的值。我将它传递给一个函数进行验证。
如果存在上述属性,我们可以使用 和 获取它们的值data["id"]
,data["second"]
但有时,基于其他值,属性可能会有所不同。
如何data
独立于属性名称获取值?
要在不知道这些属性名称的情况下访问对象的属性,您可以使用for ... in
循环:
for(key in data) {
if(data.hasOwnProperty(key)) {
var value = data[key];
//do something with value;
}
}
在 ES2017 中,您可以使用Object.values()
:
Object.values(data)
在撰写本文时,支持是有限的(FireFox 和 Chrome)。现在除了 IE 之外的所有主流浏览器都支持这个。
在 ES2015 中你可以使用这个:
Object.keys(data).map(k => data[k])
如果您想在一行中执行此操作,请尝试:
Object.keys(a).map(function(key){return a[key]})
如果你$
被定义那么你可以迭代
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"]
很抱歉,您的结论性问题不是那么清楚,但您从一开始就错了。变量数据是一个对象而不是一个数组
访问对象的属性非常简单:
alert(data.second);
但是,如果这不能完全回答您的问题,请澄清并回复。
谢谢 !
使用lodash _.values(object)
_.values({"id": 1, "second": "abcd"})
[ 1, 'abcd' ]
lodash
包括一大堆其他函数,用于处理数组、对象、集合、字符串等,这些函数是您希望内置到 JavaScript 中的(实际上似乎正在慢慢进入该语言)。