如何在JavaScript中巧妙地通过数组长度创建一个条件?
请参阅以下内容:
var value = ['a','b','c'];
var array0 = ['apple'];
var cond0 = value.indexOf(array0[0]) == -1 ;
var array1 = ['apple', 'banana'];
var cond1 = value.indexOf(array1[0]) == -1 && value.indexOf(array1[1]) == -1 ;
// On the same way,
var array2 = ['apple', 'banana', 'kiwi'];
var cond2 = value.indexOf(array2[0]) == -1 && value.indexOf(array2[1]) == -1 && value.indexOf(array2[2]);
我只想追加&&
条件作为数组的长度。我怎样才能做出一个' cond'只是?
我不知道一个简单的方法,所以我手动添加条件。
但我认为这不是一个好方法,我怎么能巧妙地做到这一点?
答案 0 :(得分:0)
您可以创建一个函数来验证值是否不存在
function notContains(values, array) {
for(var i = 0; i < values.length; i++) {
for(var j = 0; i < array.length; i++) {
if(array[j].indexOf(values[i]) > -1) {
return false;
}
}
}
return true;
}
var values = ['a','b','c'];
var cond0 = notContains(values, ['apple']);
var cond1 = notContains(values, ['apple', 'banana']);
var cond2 = notContains(values, ['apple', 'banana', 'kiwi']);
答案 1 :(得分:0)
以下应该做的伎俩。
<?php
class ClassName
{
public function a()
{
// ...
return $this;
}
public function b($param)
{
// ...
return $this;
}
public function c()
{
// ...
return $this;
}
}
// testing
$obj = new ClassName;
$result = $obj->a()->b('someParam')->c();
答案 2 :(得分:0)
你可以尝试循环遍历数组:
array2.forEach(function(item){
if(value.indexOf(item) > -1){
....
}
));
答案 3 :(得分:0)
Georg的解决方案非常好,但我想这会更进一步。你可以这样做。
var value = ['a','b','c'],
array2 = ['apple', 'banana', 'kiwi'];
check = array2.reduce((p,c) => p = p || value.includes(c),false)
console.log(check);
答案 4 :(得分:0)
回答这个问题: '如何在JavaScript中巧妙地通过数组长度创建条件?'
我认为你可以这样做:
var stop = 0;
while(stop < value.length){
if(condition){
// do something
}
stop++;
}
答案 5 :(得分:0)
使用Array.some
函数的优化解决方案(如果回调函数为任何数组元素返回 truthy 值):
var value = ['a','b','c'],
array2 = ['apple', 'banana', 'kiwi'];
var cond2 = !array2.some((v) => value.indexOf(v) !== -1);
console.log(cond2); // true