Поиск вложенного массива в lodash / es6 - PullRequest
0 голосов
/ 03 июля 2019

Ищем значение в массиве массива и возвращаем индекс.Большинство ответов являются массивом объектов.Поэтому я ищу для поиска, например, 22 и получить 2 в качестве индекса, где было найдено значение

Вот код пера https://codesandbox.io/s/lodash-playground-array-pzzhe

const arr = [["a","b"],["f","r"],["r",22,"t"]];
console.log("arr", arr);

Ответы [ 4 ]

4 голосов
/ 03 июля 2019

Вы можете взять простой Javascript с Array#findIndex с Array#includes.

var array = [["a", "b"], ["f", "r"], ["r", 22, "t"]],
    value = 22,
    index  = array.findIndex(a => a.includes(value));
    
console.log(index);
1 голос
/ 03 июля 2019

Опция 1 Использование findIndex

const arr = [["a","b"],["f","r"],["r",22,"t"]];
console.log(arr.findIndex(a => a.includes(22)));

Опция 2 : использование функций indexOf и включает :

const arr = [["a","b"],["f","r"],["r",22,"t"]];
// find element
const element = arr.find(a => a.includes(22));
// find element index
const currentIndex = arr.indexOf(element)

console.log(currentIndex);
0 голосов
/ 03 июля 2019

В случае, если вам действительно понадобится вложенный массив, в котором было найдено значение, вы также можете использовать Array.find и его index и получить оба:

const arr = [["a","b"],["f","r"],["r",22,"t"]];

let index, subArr = arr.find((x,i) => x.includes(22) && ~(index=i))

console.log('sub-array: ', subArr)
console.log('index: ', index)
0 голосов
/ 03 июля 2019

indexOfFlat = (val, array) => array.findIndex(_arr => _arr.includes(val));
const arr = [["a","b"],["f","r"],["r",22,"t"]];
console.log("arr", arr);
console.log("index", indexOfFlat(22, arr))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.core.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...