Если вы хотите использовать filter
, установите флаг, который переключается при возникновении условия, и возвращайте true, если флаг переключен:
function dropElements(arr, func) {
let found = false;
return arr.filter((item) => {
if (found) return true;
if (func(item)) {
found = true;
return true;
}
});
}
console.log(dropElements([1, 2, 3, 4], function(n) {
return n > 5;
}));
console.log(dropElements([1, 2, 3, 4], function(n) {
return n >= 3;
}))
Я думаю, что findIndex
с последующим slice
было бы более уместным, хотя:
function dropElements(arr, func) {
const startAtIndex = arr.findIndex(func);
return startAtIndex === -1
? []
: arr.slice(startAtIndex);
}
console.log(dropElements([1, 2, 3, 4], function(n) {
return n > 5;
}));
console.log(dropElements([1, 2, 3, 4], function(n) {
return n >= 3;
}))