У меня есть вложенный объект.Мне нужно отфильтровать их по свойству дочернего объекта, но получить только ключи.
До сих пор я пытался сначала добавить свойство id в каждый дочерний объект и назначить объектуключ как его значение.Затем приступите к фильтрации объекта, сравните свойство, если оно будет соответствовать запросу, а затем верните введенное свойство id .
let test_obj = {
A: {
a: 1,
b: 1,
},
B: {
a: 1,
b: 2,
},
C: {
a: 1,
b: 3,
}
}
let identify = (e) => {
for (e of Object.entries(e)){
key = e[0];
val = e[1];
val.id = key;
console.log(e);
}
}
identify(test_obj);
let query = (test_obj,prop,val) => (Object.values(test_obj).filter(o => o[prop] == val).map(o=>o.id));
let result = query(test_obj,"b",2);
console.log(result)
В настоящее время он возвращает желаемые результаты, но я чувствую, чтоЯ смухлевал.Есть ли способ сделать это, не вводя другое свойство для определения ключа?Я чувствую, что что-то упустил, но я не могу обернуть голову вокруг этого.