我正在尝试评估数组的均匀性。即var num = [1,1,1,1,1,] // true或var num = [1,1,2,1,1] = // false。它也可以是一个字符串数组。我想要做的是评估整个数组并返回单个“true”或“false”。到目前为止,我的代码评估数组中的每个项目并返回每个项目的结果。我很擅长编码和在线上课,在没有作弊的情况下解决问题!
var num = [1,1,3,1,1];
var first = num[0];
num.forEach(function (num, i) {
if(first === num){
console.log(true);
} else {
console.log(false);
}
});
答案 0 :(得分:1)
你走在正确的轨道上。不是为每个答案记录true
或false
,而是创建一个变量来存储整体答案,然后在您完成后打印出来。像这样:
var num = [1,1,3,1,1];
var first = num[0];
var ans = true;
num.forEach(function (n) {
if(first !== n){
ans = false;
}
});
console.log(ans);
答案 1 :(得分:1)
使用.some()
var num = [1,1,3,1,1];
var notUni = num.some(function(val, idx, arr){
return val != arr[0]; // (If arr[0] (1) is the base you're interested in)
});
console.log( notUni ); // true
P.S:some
会在找到(true
)不匹配后立即退出。
答案 2 :(得分:0)
var num = [1, 1, 3, 1, 1];
var result = num.every(n => n == num[0]);
every()方法测试数组中的所有元素是否都通过了由提供的函数实现的测试。
var num = [1, 1, 1, 1, 1];
var result = num.every(n => n == num[0]);
document.write(result);