首页 > 解决方案 > 如何将带有对象的数组中的数据动态添加到嵌套数组中?

问题描述

我有这组动态获取的数据 - 这是我动态获取的数据

我的问题是如何从键、模式和标签中获取值并将它们放在这样的嵌套对象中 -嵌套对象应该是什么样子

我目前的代码是

let mergeTagsObj = {};  
  const merg = function(arr){
    const propertyDataMap = arr.map(x => x.key);
    propertyDataMap.forEach(x => {
      mergeTagsObj[x] = {} 
    });
    console.log(mergeTagsObj);
    // console.log(object);
  };
  merg(displayArr)

displayArr 有我动态获取的数据,我映射每个数据以获取密钥,然后我可以为对象属性命名。但在那之后,我需要获取另外 2 个(模式和标签)并将其放入 mergeTagsObj;

ex: mergeTagsObj = {
firstName:{
name:{label}
value:{pattern}
},
...
};

标签: javascriptobjectjavascript-objectsnested-object

解决方案


// Given
const data = [
  {key: "firstName", pattern: "{{firstName}}", label: "First Name"},
  {key: "unsubscribeLink", pattern: "{{unsubscribeLink}}", label: "Unsubscribe Link"}
];

const tagsObject = data.reduce((obj, item) => {
  const key = item.key;
  const name = item.label;
  let value = item.pattern;
  if (key === 'unsubscribeLink') value = '<a href="{{unsubscribeLink}}">Unsubscribe</a>';

  return {...obj, [key]: {name, value}};
}, {});

console.log(tagsObject);

推荐阅读