我想使用 id 作为索引值,然后生成一个新数组。你有什么更好的办法?
这是我想要的结果
Arr:Array[2]
3:"a"
8:"b"
Run Code Online (Sandbox Code Playgroud)
加工前
Arr:Array[2]
0:"a"
1:"b"
Run Code Online (Sandbox Code Playgroud)
我的代码
Arr:Array[2]
3:"a"
8:"b"
Run Code Online (Sandbox Code Playgroud)
您可以使用reduce, 用空数组初始化,用 设置每个索引,用 设置id每个值name:
var data = [{
id: 3,
name: 'a'
},
{
id: 8,
name: 'b',
}
]
console.log(data.reduce((a, {id, name}) => (a[id] = name, a), []))Run Code Online (Sandbox Code Playgroud)
注意,您不能拥有值之间没有索引的数组。Javascript 会自动填充这些
undefined
如果这不符合您的需求,那么唯一的其他选择是使用对象(或地图,但更复杂:P),从某种意义上说,它仍然可以像数组一样工作:
var data = [{
id: 3,
name: 'a'
},
{
id: 8,
name: 'b',
}
]
const obj = data.reduce((a, {id, name}) => (a[id] = name, a), {})
console.log(obj)
console.log(obj[3]) // a
console.log(obj[8]) // bRun Code Online (Sandbox Code Playgroud)