判断数组中是否所有元素都是正数

709 阅读1分钟

目标:判断数组中是否所有元素都是正数。 如果都是,则返回true,否则返回false

let arr1=[10, 13, 30, 50,10,-20,60]
let arr2=[10, 29, 30, 52,10,10,60]

法1 声明一个新数组,循环遍历原数组,原素组里大于0的数,才往新数组里面push,最后比较两个数组长度即可

function isAllPosNum(arr){
    let newArr=[]
    for(let i = 0;i<arr.length;i++){
        if (arr[i]>0){
            // newArr[newArr.length]=arr[i]
            newArr.push(arr[i])
        }   
    }
    return  newArr.length===arr.length?true:false
}

let res1=isAllPosNum(arr1)
let res2=isAllPosNum(arr2)
console.log(res1, res2)//false true

法2 开关思想,声明一个 flag 为 true ,循环遍历该数组,只要该数组里存在非正数, flag 就变成 false ,最后返回 flag 即可

function isAllPosNum(arr){
    let flag=true
    for(let i = 0;i<arr.length;i++){
        if (arr[i]<=0){
            flag=false 
            break
        }
    }
    return flag
}
let res1=isAllPosNum(arr1)
let res2=isAllPosNum(arr2)
console.log(res1, res2)//false true

法3 every() ,只要有一个不符合要求就返回 false ,全部满足才返回 true

 let res1=arr1.every(item=>item>0)
 let res2=arr2.every(item=>item>0)
 console.log(res1,res2)//false true