想象一下,我有一个数组
arr = ["one", "two", "three"]
和逻辑
if "one" in arr
processOne()
if "two" in arr
processTwo()
if <<there is another items in array>>
processOthers()
我应该在最后 if
写什么条件?
我发现_.difference
函数,但我不想多次写元素(“一”,“两个”......)。
修改
if else if else
不合适,因为我需要调用0..N过程函数。答案 0 :(得分:3)
使用.indexOf
方法。
var index;
if ( (index = arr.indexOf('one')) !== -1) {
processOne();
arr.splice(index, 1);
}
if ((index = arr.indexOf('two')) !== -1) {
processTwo();
arr.splice(index, 1);
}
if (arr.length > 0) {
processOthers();
}
更新:或者你可以循环播放数组。
var one = false, two = false, others = false;
for (var i = 0; i < arr.length; i++) {
if (arr[i] === 'one' && !one) {
processOne();
one = true;
} else if (arr[i] === 'two' && !two) {
processTwo();
two = true;
} else (!others) {
processOthers();
others = true;
}
if (one && two && others) break;
}
答案 1 :(得分:0)
你应该这样做:
如果你有:
arr = ["one", "two", "three"]
然后:
if (something corresponds to arr[one])
{
processOne()
}
elseif (something corresponds to arr[two])
{
processTwo()
}
else (something corresponds to arr[three])
{
processOthers()
}
应该这样做。