我有一个salesRecord数组,如
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 = [
{{a:1, b:2},{a:3, b:4},{a:5, b:6}},
{{a:7, b:8},{a:9, b:0}}
]如何在javascript中完成这一任务。在实现这个过程中,我希望避免嵌套循环。
发布于 2021-07-25 09:18:53
使用map()从每个对象提取records数组。
const records = clientRecords.map(rec => rec.record);发布于 2021-07-25 09:26:29
您在问题中所写的预期结果不是有效的JS结构:
const records = [
{{a:1, b:2},{a:3, b:4},{a:5, b:6}},
{{a:7, b:8},{a:9, b:0}}
]您可能有数组或所有记录的数组,但在您的示例中,您有带有大括号(如object )的{{..}}构造,但没有任何键--这是无效的。
因此,为了获得一个有效的选项,您可以编写以下代码:
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); // [[{..}, {..}], [{..}], ... ]或者,如果您需要在列表中将每条记录分开,则可以平铺数组:
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); // [{..},{..},{..}, ...]
https://stackoverflow.com/questions/68517185
复制相似问题