如何在javascript或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()的工作.map()

 var input = [ 20, 21, 22 ]; var output = input.map( function( value ) { return { 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}); } 

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

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

 for (i = 0; i < a.length; i++) { collections.push({id: a[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