如何在JavaScript中将数组元素指定为对象中的属性值?
假设我有一个数组如何在JavaScript中将数组元素指定为对象中的属性值?,javascript,arrays,object,lodash,Javascript,Arrays,Object,Lodash,假设我有一个数组 var array = ["lionel", "messi"]; 我想使用该数组元素的值作为对象中的属性值 var obj = { "first-name": "cristiano", "last-name": "ronaldo" } 我希望最后的目标是 var obj = { "first-name": "lionel", "last-name": "messi" } 如何在JavaScript中实现这一点?或者是否有lodash函数可以执行此操作?您只
var array = ["lionel", "messi"];
我想使用该数组元素的值作为对象中的属性值
var obj = {
"first-name": "cristiano",
"last-name": "ronaldo"
}
我希望最后的目标是
var obj = {
"first-name": "lionel",
"last-name": "messi"
}
如何在JavaScript中实现这一点?或者是否有lodash函数可以执行此操作?您只需为这些属性指定:
obj["first-name"] = array[0];
obj["last-name"] = array[1];
例如:
var数组=[“莱昂内尔”、“梅西”];
var obj={
“名字”:“克里斯蒂亚诺”,
“姓氏”:“罗纳尔多”
};
obj[“first name”]=数组[0];
obj[“姓氏”]=数组[1];
控制台日志(obj)代码>您只需分配给这些属性:
obj["first-name"] = array[0];
obj["last-name"] = array[1];
例如:
var数组=[“莱昂内尔”、“梅西”];
var obj={
“名字”:“克里斯蒂亚诺”,
“姓氏”:“罗纳尔多”
};
obj[“first name”]=数组[0];
obj[“姓氏”]=数组[1];
控制台日志(obj)代码>这将起作用:
var数组=[“莱昂内尔”、“梅西”];
变量顺序=[“名字”、“姓氏”];
var obj={
“名字”:“克里斯蒂亚诺”,
“姓氏”:“罗纳尔多”
}
对于(var i=0;i这将起作用:
var数组=[“莱昂内尔”、“梅西”];
变量顺序=[“名字”、“姓氏”];
var obj={
“名字”:“克里斯蒂亚诺”,
“姓氏”:“罗纳尔多”
}
对于(var i=0;i您可以实现为:
function heteroCopy(obj, array) {
let keys = Object.keys(obj);
for (let i in keys) {
obj[keys[i]] = array[i];
}
return obj;
}
您可以实现为:
function heteroCopy(obj, array) {
let keys = Object.keys(obj);
for (let i in keys) {
obj[keys[i]] = array[i];
}
return obj;
}
Javascript没有像PHP那样的关联数组的概念。您可以创建JSON(Javascript对象表示法)。请尝试理解使用对象的概念。不要使用对象,因为要像使用数组一样使用它。Javascript有类的概念。您可以创建具有成员名和姓氏的类。实例并分配您的值 Javascript没有像PHP那样的关联数组概念。您可以创建JSON(Javascript对象表示法)。请尝试理解使用对象的概念。不要使用对象,因为要像使用数组一样使用它。Javascript有类的概念。您可以创建具有成员名和姓氏的类。实例并分配您的值 阵列是否有任何结构?我们可以假设数组的长度、对象的结构、变量等吗?这真的是您在这里寻找的对象数组吗?@T.J.Crowder做到了,谢谢!:)阵列是否有任何结构?我们可以假设数组的长度、对象的结构、变量等吗?这真的是您在这里寻找的对象数组吗?@T.J.Crowder做到了,谢谢!:)但是如果我必须动态地做呢?如何在数组/对象中循环这两个对象?@SaiCharan:循环什么?您在显示的内容中只有一个条目。一个为莱昂内尔·梅西定义数据的数组,一个有空间容纳一个人数据的对象。如果你有多个,你需要向我们展示。首先,对象的结构会有很大的不同。@SaiCharan:如果您的意思是array[0]
应该分配给obj
的“first”属性,那么我在答案中添加了解释如何在完全符合ES2015+标准的JavaScript引擎上执行此操作。您无法在ES2015之前的发动机上可靠地执行此操作。非常感谢<代码>对象.getOwnPropertyNames(obj).forEach((键,索引)=>{obj[key]=array[index];})代码>这是我一直在寻找的答案。:)@赛查兰:不用担心!请注意注意这些注意事项,例如,在IE11和更早版本上是行不通的(而且没有其他可靠的方法,跨浏览器;您必须创建自己的属性名数组)。但是如果我必须动态执行该操作,该怎么办?如何在数组/对象中循环这两个对象?@SaiCharan:循环什么?您在显示的内容中只有一个条目。一个为莱昂内尔·梅西定义数据的数组,一个有空间容纳一个人数据的对象。如果你有多个,你需要向我们展示。首先,对象的结构会有很大的不同。@SaiCharan:如果您的意思是array[0]
应该分配给obj
的“first”属性,那么我在答案中添加了解释如何在完全符合ES2015+标准的JavaScript引擎上执行此操作。您无法在ES2015之前的发动机上可靠地执行此操作。非常感谢<代码>对象.getOwnPropertyNames(obj).forEach((键,索引)=>{obj[key]=array[index];})代码>这是我一直在寻找的答案。:)@赛查兰:不用担心!请注意这些注意事项,这些注意事项在IE11及更早版本上不起作用(没有其他可靠的方法,跨浏览器;您必须创建自己的属性名称数组)。这种解决方案的问题是,语言规范本身不能保证对象的字段按我们声明的顺序排列,虽然现在的大多数实现都是这样,但如果您使用了getOwnPropertyNames
,它就会出现。但是Object.keys
确实没有这种保证(因为它早于ES2015,当时定义了顺序)。这种解决方案的问题是语言规范本身不能保证对象的字段按我们声明的顺序排列,虽然现在的大多数实现都是这样,但如果您使用了getOwnPropertyNames
,它就会出现。但是Object.keys
确实没有这种保证(因为它早于ES2015,当时定义了顺序)。这种解决方案的问题是语言规范本身不能保证对象的字段按我们声明的顺序排列,尽管现在大多数的实现都是这样。@tibetty:如果作者使用了getOwnPropertyNames
,就会这样。但是Object.keys
确实没有这种保证(因为它早于ES2015,当时定义了顺序)。这种解决方案的问题是语言规范本身不能保证对象的字段按我们声明的顺序排列,尽管现在大多数的实现都是这样。@tibetty:如果作者使用了getOwnPropertyNames
,就会这样。但是<代码