Вы определенно были на правильном пути со своим решением, несколько настроек, и мы можем сделать его очень удобочитаемым, а также очень простым в работе.Я пытался сохранить формат того, что выглядело так, как будто вы делаете.
Я воспользуюсь здесь преимуществом деструктуризации, это можно будет вернуть как просто объект, а затем ссылаться на свойства.
const myArr = [0,1,2,3,4,5,6,7,8,9,10];
const splitItems = (arr, logicFunc) => {
let secondSet = []
const firstSet = arr.filter(v => {
if (logicFunc(v)) return true
else secondSet.push(v)
})
return { firstSet, secondSet }
}
const myLogicFunc = v => (v < 3 || v == 9)
const { firstSet, secondSet } = splitItems(myArr, myLogicFunc)
console.log(`My first set: ${firstSet}`) // My first set: 0,1,2,9
console.log(`My second set: ${secondSet}`) // My second set: 3,4,5,6,7,8,10
/* OR without destructuring:
const myArrays = splitItems(myArr, myLogicFunc)
console.log(`My first set: ${myArrays.firstSet}`)
console.log(`My second set: ${myArrays.secondSet}`)
*/
Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы