首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从数组返回对象数组

从数组返回对象数组
EN

Stack Overflow用户
提问于 2021-07-25 09:16:30
回答 2查看 108关注 0票数 0

我有一个salesRecord数组,如

代码语言:javascript
复制
const clientRecord = [
  {clientNumber: "3232",record: [{a:1, b:2},{a:3, b:4},{a:5, b:6}]},
  {clientNumber: "12345",record: [{a:7, b:8},{a:9, b:0}]},
]

我想从这个数组中返回一个记录对象数组,如

代码语言:javascript
复制
const records = [
  {{a:1, b:2},{a:3, b:4},{a:5, b:6}}, 
  {{a:7, b:8},{a:9, b:0}}
]

如何在javascript中完成这一任务。在实现这个过程中,我希望避免嵌套循环。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-25 09:18:53

使用map()从每个对象提取records数组。

代码语言:javascript
复制
const records = clientRecords.map(rec => rec.record);
票数 4
EN

Stack Overflow用户

发布于 2021-07-25 09:26:29

您在问题中所写的预期结果不是有效的JS结构:

代码语言:javascript
复制
const records = [
{{a:1, b:2},{a:3, b:4},{a:5, b:6}},
{{a:7, b:8},{a:9, b:0}}
]

您可能有数组或所有记录的数组,但在您的示例中,您有带有大括号(如object )的{{..}}构造,但没有任何键--这是无效的。

因此,为了获得一个有效的选项,您可以编写以下代码:

代码语言:javascript
复制
const clientRecord = [
{clientNumber: "3232",record: [{a:1, b:2},{a:3, b:4},{a:5, b:6}]},
{clientNumber: "12345",record: [{a:7, b:8},{a:9, b:0}]},
]

const records = clientRecord.map(x => x.record);

console.log(records); // [[{..}, {..}], [{..}], ... ]

或者,如果您需要在列表中将每条记录分开,则可以平铺数组:

代码语言:javascript
复制
const clientRecord = [
{clientNumber: "3232",record: [{a:1, b:2},{a:3, b:4},{a:5, b:6}]},
{clientNumber: "12345",record: [{a:7, b:8},{a:9, b:0}]},
]

const records = clientRecord.map(x => x.record).flat();

console.log(records); // [{..},{..},{..}, ...]

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68517185

复制
相关文章

相似问题

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