Проверка Java script исключает каждое значение массива, если это значение равно определенному атрибуту массива объектов

#javascript #loops #vue.js #filter

#javascript #циклы #vue.js #Фильтр

Вопрос:

у меня есть выпадающий список tow array для tow, и мне нужно каждый раз исключать выбранное значение из списка. но это не работает

 arr1 = [{label: "Syria",value: 1},{label: "USA",value: 2}]
arr2 = [{country:1}]

excludeSelectedCountry() {
  if ( arr1.length > 0) {
    return arr1.filter(
      country =>
        !arr2.some(e => {
          e.country amp;amp; e.country === country.value;
        })
    );
  } else return arr2;
}
  

Ответ №1:

Вы можете использовать .find :

 let arr1=[{label: "Syria",value: 1},{label: "USA",value: 2}];
let arr2=[{country:1}];

const excludeSelectedCountry = () => {
     if (arr1.length > 0) {
          return arr1.filter(country => !arr2.find(e => e.country==country.value));
     } else {
          return arr2;
     }
}

console.log( excludeSelectedCountry() );