Home > Enterprise >  How do you check for a type in an array?
How do you check for a type in an array?

Time:03-01

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:

  1. 5-"a" is a NaN.
  2. 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
  • Related