gpt4 book ai didi

javascript - 根据条件将列表分成两个新列表的最佳方法

转载 作者:行者123 更新时间:2023-12-03 07:18:41 28 4
gpt4 key购买 nike

我正在寻找基于条件将数组拆分为两个新数组的好方法。假设我们有一个包含相同结构对象的列表,该对象有一个 bool 属性,我们称之为条件,我们想要两个新列表,其中我们只有相同的条件元素。

const cont1 = myArray.filter((el) => el.condition)
const cont2 = myArray.filter((el) => !el.condition)

我想这可能行得通,但我想知道是否有更好的单次迭代版本。

最佳答案

一个选择是使用reduce,它会在数组的一次迭代中从功能上分离所有项目:

const myArray = [
{ condition: true },
{ condition: true },
{ condition: false },
]
const [cont1, cont2] = myArray.reduce(([cont1, cont2], item) => {
(item.condition ? cont1 : cont2).push(item);
return [cont1, cont2];
}, [[], []]);

console.log('cont1: ', cont1);
console.log('cont2: ', cont2);

或者,功能较少但可能更具可读性,您可以.push 到外部变量:

const myArray = [
{ condition: true },
{ condition: true },
{ condition: false },
];
const cont1 = [];
const cont2 = [];
myArray.forEach((item) => {
(item.condition ? cont1 : cont2).push(item);
});

console.log('cont1: ', cont1);
console.log('cont2: ', cont2);

关于javascript - 根据条件将列表分成两个新列表的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53629606/

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