const data = Array.from({ length: 100 }).map((item, index) => index + 1);
const filter = [
{
start: 2,
end: 25,
},
{
start: 27,
end: 55,
},
{
start: 58,
end: 99,
},
];
期望结果,
[1,26,56,57,100]
const data = Array.from({ length: 100 }).map((item, index) => index + 1);
const filter = [
{
start: 2,
end: 25,
},
{
start: 37,
end: 55,
},
{
start: 58,
end: 99,
},
];
const result = [];
let fi = 0;
let flag = false;
for (let index = 0; index < data.length ; index++) {
const item = filter[fi];
if (isOk(data[index], item)) {
flag = true;
} else if (filter[fi + 1] && isOk(data[index], filter[fi + 1])) {
fi++;
} else {
flag = false;
result.push(data[index]);
}
}
function isOk(data, item) {
if (!item) {
return true;
}
const { start, end } = item;
return data >= start && data <= end;
}
console.log("result", result);
说句不相干的
真要考虑性能也不该前端来做了