[英]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.