js怎么判断数组里面的值都为0

假如有一个数组是怎么判断这个数组里面的值都是0的时候输出正确 想到的第一种方法是遍历然后拼接里面的值去匹配相等 有点不太好
有比较简便的方法吗
1.var arr=[0,0,0,0,0,0,0];

阅读 16.2k
8 个回答

some吧,比every效率高

![0,0,0,0,0,0,0].some(item => item!==0) // => true
![0,0,0,1,0,0,0].some(item => item!==0) // => false
const arr = [0, 0, 0, 0]
const temp = [...new Set(arr)]
const res = temp.length === 1 && temp[0] === 0
console.log(res)

方式还是有的,换个思路

var status=false
var arr=[0,0,0,0,0,0,0] //如果空数组不能算输出正确 下一行代码换成 arr.join('') || 1
var str=arr.join('')
var val=Number(str)
val===0 && status=true
console.log(status)

写的细一点是为了方便你理解,如果理解了你可以尝试整合精简一下

求和应该也可以的.

let arr = [0, 0, 0, 0];
eval(arr.join('+')) == 0; 

或者正则

let reg = /^0+$/g;
let arr = [0, 0, 0, 0];
reg.test(arr.join(''));

let arr=[0,0,0,0,0,0,0];
console.log(arr.every(item=>item===0))
使用数组的every()方法

var a = [0, '0', 0, 0, '0', 0, 0, 0]
console.log(!a.find(i => i!= 0))  // true
// 判定方法
const __all_element_zero = e => e ===0;
// 非全0
const __test_arr = [1,2,3,0,0];
// 全0
const __test_arr_zero = [0,0,0,0];
// 不是每一个都满足 返回 false
console.log(__test_arr.every(__all_element_zero));
// 每一个都满足 返回 true
console.log(__test_arr_zero.every(__all_element_zero));

for循环的性能吊打一切花里胡哨的操作。

推荐问题