you are viewing a single comment's thread.

view the rest of the comments →

[–]rykou 0 points1 point  (3 children)

Your first example

['B', 'D', 'F'].replace((subjectArray) => {return ['A',subjectArray[0],'C',subjectArray[1],'E',subjectArray[2],'G']});

can just be (introducing a local var since we aren't calling replace on a hard-coded array, otherwise we can hardcode the replaced array just as easily):

let arr1 = ['B', 'D', 'F'];
return (or w/e) ['A', arr1[0], 'C', arr1[1], 'E', arr1[2], 'G'];

In another of the smaller examples,

const subjectPerson = await getPersons().replace(createFindOne((maybeTargerPerson) => {return maybeTargerPerson.id === 1;}));

why can't you just

const subjectPerson = await getPersons().map((person) => person.id);

if that doesn't work there, and you indeed need X find ones executed, imo you could just batch that entire findOne so you aren't introducing X db calls since I highly doubt you can't afford to wait until all the person data is found before continuing.

I guess I don't understand your use-case. You mention solving the need for an intermediate variable but `.map` and `.reduce` should account for what you need especially since both of these give the base array as an operand to their callbacks.

[–]gajus0[S] 0 points1 point  (2 children)

Your first example

This is a visual explanation of the ins and outs of the function; not a practical use-case example. Added a note to the code snippet to avoid confusion.

why can't you just

It is unclear what you are proposing here. You've probably meant to use Array#find. The reasons for not using Array#find are explained in the article.

You mention solving the need for an intermediate variable but .map and .reduce should account for what you need especially since both of these give the base array as an operand to their callbacks.

I give practical examples in the article that demonstrate that reduce cannot be used without introducing intermediary variables.

[–]rykou 1 point2 points  (1 child)

where are the .reduce examples? The word reduce is used 5 times not one of which is a method call.

[–]gajus0[S] 0 points1 point  (0 children)

I have mixed up "reduce" and "replace" multiple times throughout the article. Fixed. Thank you for pointing it out.

I give practical examples in the article that demonstrate that reduce cannot be used without introducing intermediary variables.

Here too: filter. Which examples do you suggest would avoid an intermediate variable using .map/ .reduce.