使用lodash检查数组中是否存在数组

时间:2018-04-30 22:48:11

标签: javascript lodash

如何验证其父级中是否存在子数组?我试过_.includes_.find_.findIndex但没有运气。

let arr = [[1],[2],[3]];
let el = [1];

_.includes(arr, el)   // false
_.find(arr, el)       // undefined
_.findIndex(arr, el)  // -1

为了澄清,el数组,其中包含 n 整数,而arr数组包含 n 数量的数组。

编辑:添加了JSBIN:https://jsbin.com/tequcoloro/edit?js,console

3 个答案:

答案 0 :(得分:3)

由于Lodash是你的首选武器,你可以这样做:

_.findIndex(arr, function (v) { return _.isEqual(v, el); }); // 0

答案 1 :(得分:2)

你必须遍历数组并比较它的元素。

您可以使用_.isEqual功能执行此操作:

let arr = [[1],[2],[3]];
let el = [1];

console.log(arr.filter((e) => _.isEqual(e, el)))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

答案 2 :(得分:2)

如果你的阵列是订购的,你不必走每一个:

let arr = [[1],[2],[3]];
let el = [1];

console.log(
  arr.some(arr => arr.toString() === el.toString())
)