I need to tell the program to search an array(that’s meant to be only numbers) if it contains any element that’s a string.
Also, the array is made up of the arguments to a function. Can someone please help? I’ve been trying to figure this out for at least an hour! This is what i did so far:
const sumAll = function(…args){
const newArray = Array.from(args)
for(let i = 0; i < newArray.length; i ){
if(newArray[i] === NaN){
return “ERROR”
}
}
}
CodePudding user response:
You're looking for the function isNaN
const sumAll = function(...args){
const newArray = Array.from(args)
for(let i = 0; i < newArray.length; i ){
if(isNaN(newArray[i])){
return "ERROR"
}
}
}
console.log(sumAll(1,2,3)) // no output - undefined
console.log(sumAll(1,"two",3)) // error
CodePudding user response:
let foundString = arrayWithPossiblyString.find(i=>isNaN(5-i));
Explanation:
- 5-"a" is a NaN.
- isNaN function can be used to chec if something is NaN
CodePudding user response:
You can use arguments
keyword to access all the variables which would be passed as arguments to that specific function. Further you can use isNaN function to determine weather the given argument is a number or not.
function check(){
const arr = arguments
for(const item of arr) {
if(isNaN(item)){
return "Error"
}
}
}
check(1, "Hello", "4")
CodePudding user response:
I suggest using the isNaN
function:
...
if(isNaN(newArray[i])) {
return "ERROR";
}
CodePudding user response:
You could check with Array#some
and take isNaN
as callback.
const sumAll = function(...args) {
if (args.some(isNaN)) return "ERROR";
}
console.log(sumAll(1, 2, 3)); // undefined
console.log(sumAll(1, "two", 3)); // ERROR
CodePudding user response:
const sampleErrorArr = ['zero', 1, 2, 3, 4,]
const sampleArr = [1, 2, 3, 4, 5]
function sumAll(arr) {
let sum = 0
let hasNumber = true
arr.forEach((item, index) => {
if (typeof item === 'number') {
let temp = sum item
sum = temp
}
else {
hasNumber = false
}
})
return hasNumber == true ? sum : "Error"
}
console.log(sumAll(sampleErrorArr)) //Error
console.log(sumAll(sampleArr)) // 15