检查多个数组值是否相等
Check if multiple array values are equal
所以我有一个数组,它有3个可能的值:0、1或2
var a = [0,0,0];
我想检查a[0]、a[1]和a[2]是否都具有相等的值"1"或"2"。我该怎么做?
因此,0,0,0将返回false,1,2,1将返回false,但1,1,1或2,2,2将为true。
试试这个:
function checkArray(array){
var firstElement = array[0];
if(!firstElement) return false;
var result = true;
array.forEach(function(elem){
if(elem != firstElement) result = false;
});
return result;
}
正则表达式解决方案运行缓慢,如中所示http://jsperf.com/looping-vs-regex.所以想出了这个。
function checkArr(arr){
var f = arr[0];
if(f == 0) return false;
for(var i = 0; i < arr.length; i++)
if(arr[i] != f) return false;
return true;
}
试试这个:
var validate = function(arr) {
var s = 0;
var i = l = arr.length;
while(i --)
s += arr[i];
return l === s || (2 * l) === s;
};
console.log(validate([0,0,0]));//false
console.log(validate([1,2,1]));//false
console.log(validate([2,2,2]));//true
console.log(validate([1,1,1]));//true
console.log(validate([2,2,2,2,2]));//true
另一个apprach,没有循环或正则表达式:
var arr = [1,2,1];
arr.every(function (el) {
return (el === 1 || el === 2) && el === arr[0];
})
或者,使用.some
而不是.every
:
!arr.some(function (el) {
return (el !== 1 && el !== 2) || el !== arr[0];
})
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 用于检查数组中是否存在元素的javascript自定义方法
- 验证会话中是否存在对象's数组
- JS数组-检查对象值是否重复
- 如何检查数组中的对象是否等于选项值
- javascript数组元素是否知道其封闭数组
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 使用JavaScript或jQuery检查单选按钮选择是否与数组中的项目匹配
- 检查数组中是否存在字符串值,并返回找到的数组值js
- 查找对象数组是否包含其中一个标记的最快方法
- JavaScript:是否可以将图像/信息附加到数组项
- 消隐数组元素是否生成自己的属性
- 检查来自不同数组的两个元素的一个属性是否相等
- 检查数组是否包含
- 在对象上迭代以验证它是否's键存在于数组中
- Javascript检查图像是否在数组中
- 是否可以将字符串转换为文字对象数组
- 如何确定$(this)是否在单击事件的数组中
- 使用JQuery检查数组的索引中是否存在字符串
- 确定数组是否包含偶数