0

Please check my code first

I used axios.all (GET method).

.then((res) => {
  let everyDataArray = [];
  
  console.log(res); // output = [ {response}, {response} ]    

  for(let i=0; i < res.length; i++) {
    everyDataArray.push(...res[i].response)
  }
})

Right now, I'm using for loop for combining all the responses to an array.

However, What I'm trying to do is using forEach, not for.

I have checked https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach ,

but still working on how. Thank you.

3 Answers 3

1

Really what you want is to use map (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) because you want to transform one array into another.

To be clear, forEach is for the case when you want to apply a function to each item to use for side effects (like printing), rather than collecting the return values.

Sign up to request clarification or add additional context in comments.

Comments

1

you can simply use map.

.then((res) => {
  console.log(res); // output = [ {response}, {response} ]    
  let everyDataArray = res.map(item => item.response);
})

Comments

0

Your code could look something like the following:

.then((res) => {
  let everyDataArray = res.reduce((a,c)=>(a.push(...c.response),a),[]);
  // ...
  console.log(everyDataArray);
})

I used .reduce() instead of .map() as the resulting array will be of different length compared to the input array.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.