📜  将对象数组更改为没有索引值的对象 - Javascript (1)

📅  最后修改于: 2023-12-03 14:53:50.271000             🧑  作者: Mango

将对象数组更改为没有索引值的对象 - Javascript

在JavaScript中,我们经常使用对象数组来存储和管理数据。然而,在某些情况下,我们可能需要将对象数组转换为没有索引值的对象形式。本文将介绍如何通过遍历对象数组并创建新的对象来实现这个目标。

原始的对象数组

假设我们有一个如下的对象数组:

const objectArray = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];

我们希望将上述对象数组转换为以下形式:

const resultObject = {
  1: { name: 'John' },
  2: { name: 'Jane' },
  3: { name: 'Bob' }
};
实现转换过程

为了实现上述转换,我们可以使用reduce()方法来遍历对象数组,并创建一个新的对象。

下面是代码示例:

const objectArray = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];

const resultObject = objectArray.reduce((result, obj) => {
  const { id, ...rest } = obj;
  result[id] = rest;
  return result;
}, {});

在上述代码中,我们使用reduce()方法来遍历对象数组objectArray。在每次迭代中,我们使用ES6的解构赋值const { id, ...rest } = obj;来分离出每个对象中的id属性,并将剩余的属性存储在rest对象中。

然后,我们将rest对象赋值给result对象的id属性,即result[id] = rest;

最后,我们将初始值设置为空对象{},这样reduce()方法将返回一个新的对象resultObject

完整代码

下面是将对象数组转换为没有索引值的对象的完整代码:

const objectArray = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];

const resultObject = objectArray.reduce((result, obj) => {
  const { id, ...rest } = obj;
  result[id] = rest;
  return result;
}, {});

以上就是将对象数组更改为没有索引值的对象的方法。通过遍历对象数组并创建新的对象,我们可以轻松地实现这个转换过程。