在数组对象中使用值而不是索引

问题描述 投票:0回答:1

我似乎无法格式化保存到本地存储的数组。 可以改变数组的索引值吗? 我有一个像这样的数组对象:

const myArray = [{id: 41, name: "x"}, {id: 42, name: "y"}]

但我想做成这样:

const myArray = [ 41: {id:41, name:"x" }, 42: {id:41, name:"y" }}

所以对象的id就变成了数组的索引

如果这是不可能的,那么像这样应该没问题:

const myArray = [ {41: {id:41, name:"x"} }, {42: {id:41, name:"y"}}]

所以基本上,对象的 id 成为该对象的索引或容器对象。

javascript arrays json object local-storage
1个回答
0
投票

您可以通过将数组转换为一个对象来实现此目的,其中键是 ID,值是相应的对象。具体方法如下:

const myArray = [{id: 41, name: "x"}, {id: 42, name: "y"}];

// Convert the array into an object
const transformedArray = myArray.reduce((acc, obj) => {
    acc[obj.id] = obj;
    return acc;
}, {});

console.log(transformedArray);

这将为您提供所需的结果,其中 ID 是对象的键:

{
  41: {id: 41, name: "x"},
  42: {id: 42, name: "y"}
}

如果你想用它的 ID 包装每个对象,你可以使用稍微不同的方法:

const transformedArray = myArray.reduce((acc, obj) => {
    acc.push({[obj.id]: obj});
    return acc;
}, []);

console.log(transformedArray);

这将为您提供每个对象都用其 ID 包装的数组:

[
  {41: {id: 41, name: "x"}},
  {42: {id: 42, name: "y"}}
]
© www.soinside.com 2019 - 2024. All rights reserved.