我有一个数组'iid_nn',它将包含~50个值。
如果iid_nn包含13652或39855,则var somevar ='cabbages'else var somevar ='carrots'。
如果检查其中一个值我可以做
if(iid_nn.indexOf(13652) >=0) {
var somevar = 'cabbages';
} else if(iid_nn.indexOf(39855) >=0) {
{var somevar = 'cabbages';
} else {
var somevar = 'carrots';}
但我可以做点什么吗
if(iid_nn.indexOf(13652||39855) >=0) {
var somevar = 'cabbages';
} else {
var somevar = 'carrots';
}
答案 0 :(得分:2)
您可以将indexOf
条件修改为:
if (iid_nn.indexOf(13652) > -1 || iid_nn.indexOf(39855) > -1) {
或者您可以尝试使用array.some。
if (iid_nn.some(function(i) { return i === 13652 || i === 39855; }) === true) {
答案 1 :(得分:2)
您无法将一个值传递给indexOf
,这会导致它搜索多个值。但是,您可以正常使用||
运算符:
var somevar;
if (iid_nn.indexOf(13652) >= 0 || iid_nn.indexOf(39855) >= 0) {
somevar = 'cabbages';
} else {
somevar = 'carrots';
}
也许可以创建自己的功能:
function containsAny(array, items) {
return array.some(function (item) {
return items.indexOf(item) !== -1;
});
}
var somevar;
if (containsAny(iid_nn, [13652, 39855])) {
somevar = 'cabbages';
} else {
somevar = 'carrots';
}
答案 2 :(得分:0)
要检查多个值的索引,您需要将代码更新为以下内容。此外,您可以将值默认为胡萝卜,然后在条件更新它。
var somevar = 'carrots';
if(iid_nn.indexOf(13652) >= -1 || iid_nn.indexOf(39855) >= -1) {
somevar = 'cabbages';
}
答案 3 :(得分:0)
你的情况有点不对。
if(iid_nn.indexOf(39855)!=-1 || iid_nn.indexOf(13652)!=-1)
{
var somevar = 'cabbages';
} else {
var somevar = 'carrots';
}
答案 4 :(得分:0)
试试这个:
if((iid_nn.indexOf(13652) !=-1)||(iid_nn.indexOf(39855) !=-1)) {
var somevar = 'cabbages';
} else {
var somevar = 'carrots';
}
答案 5 :(得分:0)
var iid_nn = [13652],
somevar;
if (~iid_nn.indexOf(13652) || ~iid_nn.indexOf(39855)) {
somevar = 'cabbages';
} else {
somevar = 'carrots';
}