繁体   English   中英

Javascript将数组映射到具有定义键的新数组

[英]Javascript map an array to a new one with defined keys

我需要的是转换此数组

[
   0: {id: 1},
   1: {id: 2}
]

[
   1: {id: 1},
   2: {id: 2}
]

我想只是切换键,我试图使用.map但我只能更改的是值而不是键

我认为您可以通过reduce足够轻松地解决它

它以一个空数组开始,并且在每次迭代期间,在item id字段的索引处添加1个项目。

这将为您提供长度可能与预期不符的数组,因此我建议对您的要求进行更深入的研究。

 var arr = [ {id: 1}, {id: 2} ]; var result = arr.reduce( (container, item) => { container[item.id] = item; return container; }, [] ); console.log( result[1] ); console.log( result[2] ); console.log( result ); 

您总是可以使用正确的键使其成为具有正确键的对象

  var arr = [ {id: 1}, {id: 2} ]; var result = arr.reduce( (container, item) => { container[item.id] = item; return container; }, {} ); console.log( result[1] ); console.log( result[2] ); console.log( result ); 

需要注意的重要一点是,对于数组,您在位置0处有一个未定义的值,而对象版本则没有此值。 使用对象版本而不是数组会更有意义。 如评论中所提到的,在数组中留出间隙并不是一个好主意。

暂无
暂无

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

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