我似乎无法格式化保存到本地存储的数组。 可以改变数组的索引值吗? 我有一个像这样的数组对象:
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 成为该对象的索引或容器对象。
您可以通过将数组转换为一个对象来实现此目的,其中键是 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"}}
]