У меня есть карта массивов чисел в JavaScript. Моя цель - получить ключ от значения, содержащего определенное число. Я также открыт для другой структуры данных, которая может быть более эффективной.Самый эффективный способ поиска карты массивов в JavaScript
let bookCategory = {
"fantasy": [10064, 10066, 10071],
"scifi": [10060, 10037, 10061],
"history": [10001, 10003, 10004, 10005],
"biography": [10032, 10006, 10002, 10028, 10009, 10030, 100031],
"educational": [10025]
};
Каждое число будет только когда появляется один раз, но каждый массив может содержать около сотни номеров, и это может существенно расти оттуда. Массивы могут быть неизменными, поскольку мои данные являются статическими.
Прямо сейчас у меня есть это, но это не выглядит ужасно эффективным.
let category;
let keys = _.keys(categories);
let theNumber = 10032;
for(let j = 0; j < keys.length; j++) {
if(_.includes(categories[keys[j]], theNumber)) {
category = keys[j];
break;
}
}
каким должен быть выход для '10001' и' 300' быть? –
@SalvadorDali эти числа не находятся ни в одном из массивов, поэтому категория останется 'undefined'. – diplosaurus
Если они разные, создайте карту из значения в категорию. – zerkms