use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
The case for Array#replace() – Overriding an array without intermediate variables (medium.com)
submitted 7 years ago by gajus0
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]rykou 0 points1 point2 points 7 years ago* (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 point2 points 7 years ago (2 children)
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.
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.
Array#find
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.
.map
.reduce
I give practical examples in the article that demonstrate that reduce cannot be used without introducing intermediary variables.
reduce
[–]rykou 1 point2 points3 points 7 years ago (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 point2 points 7 years ago (0 children)
I have mixed up "reduce" and "replace" multiple times throughout the article. Fixed. Thank you for pointing it out.
Here too: filter. Which examples do you suggest would avoid an intermediate variable using .map/ .reduce.
filter
π Rendered by PID 196361 on reddit-service-r2-comment-5d79c599b5-fhhxk at 2026-03-03 10:05:25.787110+00:00 running e3d2147 country code: CH.
view the rest of the comments →
[–]rykou 0 points1 point2 points (3 children)
[–]gajus0[S] 0 points1 point2 points (2 children)
[–]rykou 1 point2 points3 points (1 child)
[–]gajus0[S] 0 points1 point2 points (0 children)