繁体   English   中英

如何从javascript或jquery中的数组添加键到对象

[英]how to add key to object from array in javascript or jquery

如何将键值添加到javascript对象,我有一个像这样的数组: var a = [20, 21, 22];

我试图使用以下代码将其转换为javascript对象: var id = Object.assign({}, a);

结果是: {0 : 20, 1 : 21, 2 : 22}

但是,如何像下面的对象一样更改结果?

0 : {id : 20}, 1 : {id : 21}, 2 : {id : 22}

任何帮助将不胜感激

根据您的评论“对象的格式应为:0:{id:20},1:{id:21},2:{id:22}”,这看起来像是.map()

 var input = [ 20, 21, 22 ]; var output = input.map( function( value ) { return { id: value }; }); console.log( output ); 

或者,在现代JavaScript中,使用箭头功能:

 var input = [ 20, 21, 22 ]; var output = input.map( value => ({ id: value }) ); console.log( output ); 

您不能也不应拥有{id : 20, id: 21, id:22} 对象中的每个键都应该是唯一的,否则就不能成为“键”。

假设您有一个像

var a = {id : 20, id: 21, id:22};

,那么您打算如何访问这些元素? a.id返回什么,对您有什么帮助?

如果要获得0 : {id : 20}, 1 : {id : 21}, 2 : {id : 22} ,则可以这样进行:

let a = [20, 21, 22];
let obj = Array();
for(let i of a) {
  obj.push({id: i});
}

{id : 20, id: 21, id:22}等效于1个键/值对。 他们无法将{id : 20, id: 21, id:22}作为对象并将值保持为20、21、22

您可以尝试将其放入数组

{id : [20, 21, 22]}

要么

[{id:20}, {id:21}, {id:22}]

 var a = [20, 21, 22]; var result = []; for(let i=0; i<a.length; i++){ result.push({id: a[i]}); } //console.log(result) var id = Object.assign({}, result); console.log(id); 

创建如下对象:var collections = [],a = [20,21,22];

迭代数组a([20,21,22]),并在下面的集合中添加单个项,即数组。

for (i = 0; i < a.length; i++) {
    collections.push({id: a[i]});
}

干杯...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM