I'm currently trying to return an array
with some values and a function
that returns another array
as well. How do I do it that my returns is basically 2 arrays
instead of 1 array
and 1 function
Example
const array1 = [a, b, c]
const function = () => {
if(something) {
somevalues.map(e => {
return (
<div>{e}<div>
)
})
} else {
othervalues.map(f => {
return (
<div>{f}<div>
)
})
}
}
return [...array1, function] ??
function in the example obviously returns function instead of its own return, how do I fix that?
CodePudding user response:
You need to
- actually return something from your function. If you don't return the return values of
somevalues.map(...)
andothervalues.map(...)
then your function will returnundefined
. - call the function to get its return value
- spread the return value into the result array, just like you do with the static array.
Example:
const array1 = [a, b, c]
const outerFunction = () => {
const innerFunction = () => {
if(something) {
return somevalues.map(e => (<div>{e}<div>));
// ^^^^^^
} else {
return othervalues.map(f => (<div>{f}<div>));
// ^^^^^^
}
}
return [...array1, ...innerFunction()];
// ^^^ ^^
}
CodePudding user response:
const array1 = ['a', 'b', 'c'];
const something = true;
const func = () => {
if(something) {
return 'e';
} else {
return 'f';
}
};
console.log([...array1, func()]); //[ "a", "b", "c", "e" ]