我有这个 initialArray = [1,2,3,4,5,6]
我想添加这个 [1,2,3]
1 /如果[1,2,3]
存在于 中initialArray
,我想将其从initialArray
.
所以结果将是 [4,5,6]
2 /然后我想[1,2,3]
再次添加,现在[1,2,3]
已经不存在了initialArray
。
所以在这种情况下,结果将是 [4,5,6,1,2,3]
3 /现在我想添加[1,2,3,4,5,6]
. 所以在这种情况下,结果将是[]
我试图用来.filter()
删除现有的值,它的工作原理。但是如果值不存在,我就不能“连接”。我无法做到这两点。
我能怎么做?
const initialArray = []; // your initial array
const add = []; // stuff you want to add
const { filtered, toAdd } = initialArray.reduce((acc, curr) => {
const index = acc.toAdd.findIndex(v => v === curr);
index === -1 ? acc.filtered.push(curr) : acc.toAdd.splice(index, 1);
return acc;
}, { filtered: [], toAdd: [...add] });
const final = [...filtered, ...toAdd];
如果你的 initialArray 有重复的值,你可以这样做,
const initialArray = [...new Set(initialArrayWithDuplicates)];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句