Проверьте, существует ли массив в массиве, используя lodash - PullRequest
0 голосов
/ 01 мая 2018

Как проверить, существует ли дочерний массив в его родительском? Я пытался _. Включает в себя , _. Найти и _. 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 голосов
/ 01 мая 2018

Так как Lodash - ваше оружие выбора, вы можете сделать:

_.findIndex(arr, function (v) { return _.isEqual(v, el); }); // 0
0 голосов
/ 01 мая 2018

Если ваши массивы заказаны, вам не нужно ходить по каждому из них:

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

console.log(
  arr.some(arr => arr.toString() === el.toString())
)
0 голосов
/ 01 мая 2018

Вам придется пройтись по массиву и сравнить его элементы.

Для этого можно использовать функцию _.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>
...