2016-09-09 2 views
1

У меня есть 2 массива строки. Я хочу убедиться, что все элементы второго массива находятся в первом. Я использую Lodash/Underscore для таких вещей. Его легко при проверке, если один astring в массиве:Метод Lodash для проверки того, все ли элементы в массиве находятся в другом массиве

var arr1 = ['a', 'b', 'c', 'd']; 
_.includes(arr1, 'b'); 
// => true 

Но когда его массив, я не могу видеть текущий способ сделать это. То, что я сделал это:

var arr1 = ['a', 'b', 'c', 'd']; 
var arr2 = ['a', 'b', 'x']; 

var intersection = _.intersection(arr1, arr2); 

console.log('intersection is ', intersection); 

if (intersection.length < arr2.length) { 
    console.log('no'); 
} else { 
    console.log('yes'); 
} 

скрипку here. Но он довольно длинный. Есть ли встроенный метод Lodash?

ответ

1

Вы можете использовать _.xor для симметричной разницы и взять длину как проверку. Если length === 0, оба массива содержат одни и те же элементы.

var arr1 = ['a', 'b', 'c', 'd'], 
 
    arr2 = ['a', 'b', 'x']; 
 

 
console.log(_.xor(arr2, arr1));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>