我有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');
}
小提琴在这里。但是它相当漫长。有内置的Lodash方法吗?
您可以使用_.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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句