假设我有一个数组
var array = ["lionel", "messi"];
我想将该数组元素的值用于对象中的属性值。
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
}
我想要最终的对象,
var obj = {
"first-name": "lionel",
"last-name": "messi"
}
我如何在JavaScript中执行此操作?或者是否有一个可以做到这一点的lodash功能?
答案 0 :(得分:5)
您只需分配给这些属性:
obj["first-name"] = array[0];
obj["last-name"] = array[1];
示例:
var array = ["lionel", "messi"];
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
};
obj["first-name"] = array[0];
obj["last-name"] = array[1];
console.log(obj);

在ES2015 +中,您可以使用解构分配:
[obj["first-name"], obj["last-name"]] = array;
示例:
var array = ["lionel", "messi"];
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
};
[obj["first-name"], obj["last-name"]] = array;
console.log(obj);

在评论中你说过:
但如果我必须动态地做什么呢?如何在数组/对象中循环?
如果 ,则表示您要将array
中的条目通过其位置<obj
分配给对象属性/ em>,请注意,自ES2015起,对象属性订单是新的,并且很容易被误解。
但是使用完全符合ES2015标准的JavaScript引擎, if 您的对象确实被定义为:
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
};
...然后Object.getOwnPropertyNames
将可靠地返回["first-name", "last-name"]
(Object.keys
不保证),因为:
是的,这有很多警告。所以你可以使用它,像这样:
Object.getOwnPropertyNames(obj).forEach((key, index) => {
obj[key] = array[index];
});
示例:
var array = ["lionel", "messi"];
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
};
Object.getOwnPropertyNames(obj).forEach((key, index) => {
obj[key] = array[index];
});
console.log(obj);
&#13;
再次:这仅适用于完全符合ES2015标准的JavaScript引擎,其对象定义如上所示。 getOwnPropertyNames
报告属性的顺序可能很复杂; details in the spec
答案 1 :(得分:1)
这将有效:
var array = ["lionel", "messi"];
var order = ["first-name", "last-name"];
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
}
for(var i = 0; i < array.length; i++) {
obj[order[i]] = array[i];
}
console.log(obj);
&#13;
除Object.keys(obj)
部分外,每件事都是不言自明的。它只返回一个obj键的数组(`[&#34; first-name&#34;,&#34; last-name&#34;])它获取每个键并将它们分配给你的数组。
编辑:
另外,正如tibetty在评论中所说,你需要一个订单数组。
答案 2 :(得分:1)
您可以实施为:
function heteroCopy(obj, array) {
let keys = Object.keys(obj);
for (let i in keys) {
obj[keys[i]] = array[i];
}
return obj;
}
答案 3 :(得分:-1)
Javascript没有像PHP这样的关联数组的概念。您可以创建JSON(Javascript Object Notation)。请尝试理解使用对象的概念。不要使用对象,因为你想像数组一样使用它。 Javascript具有类的概念。您可以创建具有成员名字,姓氏的类。实例并分配您的值。