gpt4 book ai didi

JavaScript 条件数组重构

转载 作者:行者123 更新时间:2023-11-30 09:26:50 24 4
gpt4 key购买 nike

假设我有一个这样的数组:

myArray = 
[
{
combineNext: false,
title: 'Title1',
items: [{item1},{item2}]
},
{
combineNext: true,
title: 'Title2',
items: [{item3}]
},
{
combineNext: true
title: 'Title3',
items: [{item4},{item5}]
},
{
combineNext: false
title: 'Title4',
items: [{item6}]
},
{
combineNext: true
title: 'Title5',
items: [{item7},{item8},{item9}]
}
]

我需要检查 combineNext 是否为真并将下一个数组项(如果存在)连接到它以创建一个新的数组数组,如下所示:

theNewArrayofArrays = 
[
[
{
combineNext: false,
title: 'Title1',
items: [{item1},{item2}]
}
],
[
{
combineNext: true,
title: 'Title2',
items: [{item3}]
},
{
combineNext: true
title: 'Title3',
items: [{item4},{item5}]
},
{
combineNext: false
title: 'Title4',
items: [{item6}]
},
],
[
{
combineNext: true
title: 'Title5',
items: [{item7},{item8},{item9}]
}
]
]

获得此输出的最佳方式是什么?

最佳答案

您可以使用 reduce 方法来执行此操作并检查前一个元素。如果前一个元素的 combineNext 为真,则将当前元素添加到累加器中的最后一个元素,否则推送新数组。

const myArray = [{"combineNext":false,"title":"Title1"},{"combineNext":true,"title":"Title2"},{"combineNext":true,"title":"Title3"},{"combineNext":false,"title":"Title4"},{"combineNext":true,"title":"Title5"}]

const result = myArray.reduce((r, e, i, arr) => {
const prev = arr[i - 1];
if (prev && prev.combineNext) r[r.length - 1].push(e)
else r.push([e])
return r;
}, [])

console.log(result)

关于JavaScript 条件数组重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48891570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com