首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这种情况下,如何从数组创建数组?

在这种情况下,如何从数组创建数组?
EN

Stack Overflow用户
提问于 2022-09-28 20:50:18
回答 2查看 39关注 0票数 0

我正在尝试创建多个对象数组,每个键都在对象中。

如何生成预期的输出(如初始数组所示)?

初始数组:

代码语言:javascript
复制
[{
    title: 'Linus tech tips',
    name: 'Linus',
    id: 'SA946',
  },
  {
    title: 'Linus tech tips',
    name: 'Colton',
    id: 'SA947',
  }
];

预期产出:

代码语言:javascript
复制
[{
  text: 'Linus tech tips',
}, {
  text: 'Linus',
}, {
  text: 'SA946',
}, ],

[{
  text: 'Linus tech tips',
}, {
  text: 'Colton',
}, {
  text: 'SA947',
}, ],
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-28 20:58:58

您可以使用array.map来实现这一点。请看一看:

代码语言:javascript
复制
const initial = [
  {
    title: 'Linus tech tips',
    name: 'Linus',
    id: 'SA946',
  },
  {
    title: 'Linus tech tips',
    name: 'Colton',
    id: 'SA947',
  },
];

const expected = initial.map(
  (item) => Object.values(item).map(
    (itemValue) => ({ text: itemValue }),
  ),
);

console.log(expected);

票数 0
EN

Stack Overflow用户

发布于 2022-09-28 20:57:54

您需要对键进行迭代,然后将数组扁平化。

代码语言:javascript
复制
[{
title: 'Linus tech tips',
name: 'Linus',
id: 'SA946',
},
{
title: 'Linus tech tips',
name: 'Colton',
id: 'SA947',
}].map(
    item => {
        return Object.keys(item).map(
            key => {
                return {text: item[key]}
            }
        )
    }
).flat()
代码语言:javascript
复制
[
  {
    "text": "Linus tech tips"
  },
  {
    "text": "Linus"
  },
  {
    "text": "SA946"
  },
  {
    "text": "Linus tech tips"
  },
  {
    "text": "Colton"
  },
  {
    "text": "SA947"
  }
]

或者,如果希望将项目分开,请不要在末尾使用flat()

代码语言:javascript
复制
[
  [
    {
      "text": "Linus tech tips"
    },
    {
      "text": "Linus"
    },
    {
      "text": "SA946"
    }
  ],
  [
    {
      "text": "Linus tech tips"
    },
    {
      "text": "Colton"
    },
    {
      "text": "SA947"
    }
  ]
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73887638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档