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.
CodePudding user response:
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.
CodePudding user response:
you can simply use map.
.then((res) => {
console.log(res); // output = [ {response}, {response} ]
let everyDataArray = res.map(item => item.response);
})
CodePudding user response:
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.