是否可以仅将一个(数组)的所有值与一个(大小写)进行比较?

时间:2018-04-10 21:38:19

标签: javascript arrays switch-statement

var Array1 = ["hi", "hello"];
var Array2 = ["bye", "goodbye"];

var test = "hi";

switch (test) {
    case Array1:
        //code
        break:

    case Array2:
        //code
        break:

    default:
        //code
}

3 个答案:

答案 0 :(得分:1)

如果您不反对使用库,http://underscorejs.org/有一个交集方法,可以简化这个:

var _ = require('underscore');

var target = [ 'apple', 'orange', 'banana'];
var fruit2 = [ 'apple', 'orange', 'mango'];
var fruit3 = [ 'mango', 'lemon', 'pineapple'];
var fruit4 = [ 'orange', 'lemon', 'grapes'];

console.log(_.intersection(target, fruit2)); //returns [apple, orange]
console.log(_.intersection(target, fruit3)); //returns []
console.log(_.intersection(target, fruit4)); //returns [orange]

交集函数将返回一个包含匹配项的新数组,如果不匹配则返回空数组。

答案 1 :(得分:0)

是的,使用Array.prototype.includes()来完成此任务:

var Array1 = ["hi", "hello"];
var Array2 = ["bye", "goodbye"];

var test = "hi";

if (Array1.includes(test)) {
    console.log("in array1")
}

else if (Array2.includes(test)) {
    console.log("in array2")
}

答案 2 :(得分:0)

  

是否可以仅将一个(数组)的所有值与一个(大小写)进行比较?

不,您的方法是比较"hi" === ["hi", "hello"]而不是您正在考虑比较这些数组中的每个对象。

您需要使用somefindincludes等功能。

例如:

if (array1.includes('hi')) {
    // Do stuff
} else if (array2.includes('hi')) {
    // Do stuff
} else {
    // Do default stuff
}