JavaScript Array push() 方法使用 id 作为索引值?

wen*_*ian -1 javascript

我想使用 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)

Kob*_*obe 5

您可以使用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]) // b
Run Code Online (Sandbox Code Playgroud)