Rewrite filter.

This commit is contained in:
David 2021-02-08 16:29:32 -06:00
parent 35df66ce79
commit ed06cb080e
2 changed files with 5 additions and 16 deletions

View file

@ -140,21 +140,10 @@ const Channel = function(length = 0) {
} }
}, },
filter: (callbackfn, thisArg) => { filter: (callbackfn, thisArg) =>
const output = Channel(); readOnly.flatMap((value) =>
callbackfn.call(thisArg, value) ? Channel.of(value) : Channel.of()
(async () => { ),
await readOnly.forEach(async (value) => {
if (await callbackfn.call(thisArg, value)) {
await output.push(value);
}
});
await output.close();
})();
return output;
},
flat: (depth) => flat: (depth) =>
readOnly.flatMap((value) => readOnly.flatMap((value) =>

View file

@ -250,7 +250,7 @@ describe(`Channel object`, function() {
it(`filter`, async function() { it(`filter`, async function() {
assert.deepEqual( assert.deepEqual(
await Channel.of(0, 1, 2, 3, 4, 5) await Channel.of(0, 1, 2, 3, 4, 5)
.filter(async (value) => value % 2 !== 0) .filter((value) => value % 2 !== 0)
.values(), .values(),
[1, 3, 5] [1, 3, 5]
); );