将对象推入对象数组

brxnzaz

我想将检索到的结果作为内联字符串结果推送到我的数组对象项中

这是我的代码:

  arrayObject.push({ type: "type", item: itemArray });

  arrayObject.forEach((elementItem) => {
    global.forEach((element) => {
      const { items } = element;
      for (const item in items) {
        const title = items[item].title;
        elementItem.item.push({ title });
      }
    });
  });

这是我从全局,项目和标题中检索的json文件

  global: [
    {
      items: {
        xxx: {
          title: 'result1',
        }
      },
    }
 ]

我想要的结果是这样的:

[ { type: 'xxx', item: [ {name: result1 } ] } ]
乔·华纳

在这里,我使用了reduce和object.values来产生预期的结果。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_objects/Object/values

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

const global = [{
    way: 'type1',
    items: {
      get: {
        title: 'result1',
      },
      post: {
        title: 'result2',
      },
      put: {
        title: 'result3',
      },
    },
  },
  {
    way: 'type2',
    items: {
      get: {
        title: 'test1',
      },
      post: {
        title: 'test2',
      },
      put: {
        title: 'test3',
      },
    },
  },
]

function mapJsonToTypes(arr) {
  const typeAndTitles = (acc, {items, way: type}) => {
    return [...acc, {type, item: getTitlesFromItems(items)}]
  }

  return arr.reduce(typeAndTitles, []);
}

function getTitlesFromItems(items = {}) {
  return Object.values(items).map(({ title }) => title)
}



console.log(mapJsonToTypes(global));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章