如何检查数组是否包含任何两个特定字符串

时间:2019-01-22 05:22:11

标签: javascript arrays string include indexof

handleDropdown = (dropdown) => {
        dropdown.map(drop => {
            if (drop.value.includes('destroyed') && drop.value.includes('damaged')) {
                console.log("working")
              }
        })
    }

我需要检查数组中是否同时存在“销毁”和“损坏”并返回true。如果我使用include来检查任何一个条件都可以正常工作,那么我不确定如何检查数组中是否存在两个特定的两个元素。我需要帮助解决此问题。谢谢。

3 个答案:

答案 0 :(得分:3)

您可以创建一个值数组来检查并使用.every()来测试它们在数据数组中的存在。

let data = ['a', 'b', 'destroyed', 'damaged', 'y', 'z'];
let valuesToCheck = ['destroyed', 'damaged'];

if(valuesToCheck.every(s => data.includes(s))) {
  console.log('It is working');
}

答案 1 :(得分:2)

您可以使用以下内容:

const joined = dropdown.join();
return joined.includes('destroyed') && joined.includes('damaged')

答案 2 :(得分:1)

您也可以使用indexOf

let data = ['a', 'b', 'destroyed', 'damaged', 'y', 'z'];

var result = data.indexOf('destroyed')> -1 && data.indexOf('damaged') > -1;

if(result)
  {
    console.log("It is working");
  }