【问题标题】:Is it possible to compare all values from one (array) to one (case) only?是否可以仅比较一个(数组)和一个(案例)中的所有值?
【发布时间】:2018-04-10 21:38:19
【问题描述】:
var Array1 = ["hi", "hello"];
var Array2 = ["bye", "goodbye"];

var test = "hi";

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

    case Array2:
        //code
        break:

    default:
        //code
}

【问题讨论】:

  • 您好,欢迎来到 StackOverflow。我建议您查看How to Ask。对于发布的问题,尚不清楚您在寻找什么。编码愉快!
  • 我们需要更多的上下文你想达到什么目的?
  • 您发布的内容是不可能的,您需要使用somefindincludes等函数检查值。
  • 不,switch 不会那样做。使用if (Array1.includes(test)) { … } else if (Array2.includes(test)) { … }
  • 我正在尝试让 (case Array1 :) 比较 Array1 的所有值,而不需要为每个数组索引创建一个案例

标签: javascript arrays switch-statement


【解决方案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]

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

【讨论】:

    【解决方案2】:

    是的,使用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")
    }

    【讨论】:

      【解决方案3】:

      是否可以只比较一个(数组)和一个(案例)中的所有值?

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

      您需要使用somefindincludes等函数。

      例如:

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

      【讨论】:

        猜你喜欢
        • 2020-04-26
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 2019-05-07
        • 2021-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多