I have written a function to search an array and log a number(x) if it is found. The code below works as expected and 1 is logged.
let myArr = [54, 23, 499, 342, 1, 44];
let x = 1;
let searchNumber = (arr) => {
arr.forEach(ele => {
if (ele == x) {
console.log(ele);
}
})
};
searchNumber(myArr);
I'd like to now return the number that I assign to variable x. Expecting y to be assigned 499 but when I log y it returns undefined. Where am I going wrong?
let myArr = [54, 23, 499, 342, 1, 44];
let x = 499;
let searchNumber = (arr) => {
arr.forEach(ele => {
if (ele == x) {
return ele;
}
})
};
let y = searchNumber(myArr);
return ele
inside forEach
callback is not the return
of the searchNumber
function.
forEach
executes a provided function once for each array element so return ele
inside that will act like return
to that provided function inside forEach
.
It does not repesent the return
to the main function.
In this case, it's better to use for
loop.
let myArr = [54, 23, 499, 342, 1, 44];
let x = 499;
let searchNumber = (arr) => {
for (let i = 0; i < arr.length; i ++) {
if (arr[i] == x) {
return arr[i];
}
}
};
let y = searchNumber(myArr);
console.log(y);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With