use*_*203 -3 javascript arrays counting
我有两个布尔数组:
arr1 = [true, false, false, true]
arr2 = [false, false, false ,true]
Run Code Online (Sandbox Code Playgroud)
我想创建一个只有当arr1和arr2包含true但每个数组只有一个true时才返回true的函数.例如,对于上面的数组,函数必须返回false.如果数组是这样的:
arr1 = [true, false, false, false]
arr2 = [false, false, false ,true]
Run Code Online (Sandbox Code Playgroud)
该函数将返回true.您是否知道快速实现这一目标的方法而无需计算元素?
您可以检查元素的第一个索引和最后一个索引的值是否相同:
function check(arr1, arr2){
var firstIndexArr1 = arr1.indexOf(true);
var lastIndexArr1 = arr1.lastIndexOf(true);
var firstIndexArr2 = arr2.indexOf(true);
var lastIndexArr2 = arr2.lastIndexOf(true);
return (firstIndexArr1 !== -1 && firstIndexArr1 === lastIndexArr1) &&
(firstIndexArr2 !== -1 && firstIndexArr2 === lastIndexArr2);
}
//return true
var arr1 = [true, false, false, false];
var arr2 = [false, false, false ,true];
console.log(check(arr1, arr2));
//return false
arr1 = [true, false, false, true];
arr2 = [false, true, false ,true];
console.log(check(arr1, arr2));
//return false if none of the array has true
arr1 = [false, false, false, false];
arr2 = [false, false, false ,false];
console.log(check(arr1, arr2));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |