我有2个字符串数组。我想确保第二个数组的所有元素都在第一个。我使用Lodash / Underscore来做这样的事情。检查一个astring是否在数组中时很容易:
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方法?
答案 0 :(得分:2)
您可以使用_.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>