Как проверить, содержит ли массив какие-либо две конкретные строки - PullRequest
0 голосов
/ 22 января 2019
handleDropdown = (dropdown) => {
        dropdown.map(drop => {
            if (drop.value.includes('destroyed') && drop.value.includes('damaged')) {
                console.log("working")
              }
        })
    }

Мне нужно проверить, присутствуют ли как «уничтоженные», так и «поврежденные» в массиве, и вернуть true.Если я проверяю какое-либо одно условие, используя include, оно работает нормально, я не уверен, как проверить, есть ли два конкретных двух элемента в массиве.Мне нужна помощь в решении этого вопроса. Спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 22 января 2019

Вы можете создать массив значений для проверки и использовать .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');
}
0 голосов
/ 22 января 2019

Вы также можете использовать 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");
  }
0 голосов
/ 22 января 2019

Вы можете использовать следующее:

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