JS - 如何使这个对象由数组动态填充?

JS - How do I make this object filled dynamically by an array?

我在以下方面需要帮助:我正在使用 material-table 并且它的列采用参数“lookup”,这是一个具有值的对象。它用于在行内过滤和启用多选。问题是,我能找到的所有示例都是硬编码的,我无法找到动态填充的查找对象。现在我的问题是;如何使用数组中的值填充查找对象:

 const [columns, setColumns] = useState([
 {
   title: 'Birth Place',
   field: 'birthCity',
   lookup: { 34: 'İstanbul', 63: 'Şanlıurfa' },
 },
]);

我需要这样的对象:

{"PUE-200":"PUE-200", "PUE-201":"PUE-202" etc.}

我需要从中提取数据的数组如下:

   0:{
    "ProjektNr": "PUE-200",
    "ProjektBeschreibung": "aa"
    }
   1:{
    "ProjektNr": "PUE-201",
    "ProjektBeschreibung": "aa"
    }

会感谢任何帮助:)

据我所知,这就是您所需要的。

const arr = [{
    "ProjektNr": "PUE-200",
    "ProjektBeschreibung": "aa"
    },
    {
    "ProjektNr": "PUE-201",
    "ProjektBeschreibung": "aa"
    }]

    const lookup = arr.reduce((accumulator,currentValue)=>{
    return {...accumulator, [currentValue.ProjektNr]: currentValue.ProjektBeschreibung },{})

使用 ProjektNr 属性 将对象数组映射到键值对数组,然后使用 Object.fromEntries.

转换回对象

const data = [
  {
    "ProjektNr": "PUE-200",
    "ProjektBeschreibung": "aa"
  },
  {
    "ProjektNr": "PUE-201",
    "ProjektBeschreibung": "aa"
  }
];

const newMap = Object.fromEntries(data.map(el => [el.ProjektNr, el.ProjektNr]));

console.log(newMap);