array.filter with async/await
13 May 2021 in TIL
I can never remember how to filter arrays in JavaScript when I need to use await to run a method.
The answer is that array.filter does not support async, so we have to use array.reduce instead. Here's an example of how it works:
javascriptlet values = ["another", "word", "here"];values = await values.reduce(async (acc, v) => {const result = await hasFourLetters(v);// If our async method didn't return true, return the current list// *without* this new entryif (!result) {return acc;}// Otherwise add this value to the listreturn (await acc).concat(run);}, []);// values = ["word", "here"]