Как сравнить 2 массива в Javascript и сделать один новый из истинных и ложных? - PullRequest
0 голосов
/ 29 января 2020

У меня есть 2 массива в Javascript, и я хочу сравнить один массив с другим, чтобы увидеть, существуют ли элементы массива1 в массиве 2, а затем создать один новый массив с такой же длиной второго массива, но содержащий только истины и ложные (истинные ценности, которые существуют, и ложные, которых нет). например:

var arr1 = [1,2,3]
var arr2 = [3,9,11,2,20]

И новый массив, который я хочу создать с той же длиной, что и 'arr2', но только с логическими значениями:

var finalArray = [true, false, false, true, false]

В этом случае только 2 true значения, потому что только '3' и '2' находятся в arr1.

В данный момент я делаю карту над массивом, но это pu sh все значения в true или false, например:

var newArray = arr2.map(x => (x = false));

Кто-нибудь может мне помочь? Я использую Vuejs, и это для списка флажков, являющихся истинными значениями тех, которые проверяются.

Ответы [ 2 ]

2 голосов
/ 29 января 2020

Вы можете принять Set в качестве thisArg из Array#map и прототип Set#has в качестве обратного вызова.

var array1 = [1, 2, 3],
    array2 = [3, 9, 11, 2, 20],
    finalArray = array2.map(Set.prototype.has, new Set(array1));

console.log(finalArray);
1 голос
/ 30 января 2020

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

var arr1 = [1,2,3];
var arr2 = [3,9,11,2,20];

var resultArray = arr2.map(value => arr1.includes(value));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...