Kocham (bardzo zaprojektowany) API, który wysyła następującą odpowiedź:

{
   "0" : {
      "name" : "John",
      "last_name" : "Doe"
   },
   "1" : {
      "name": "Mary",
      "last_name": "Ann"
   },
   [...]
}

Jak możesz zauważyć, jest to duży obiekt JSON z zagnieżdżonymi obiektami. Ponieważ nie jest to tablica, nie mogę użyć .filter(). Jak więc mogę filtrować ten duży obiekt przez zagnieżdżoną właściwość obiektu (np name lub last_name)?

0
joann2555 9 październik 2020, 05:12

1 odpowiedź

Najlepsza odpowiedź

Możesz to zrobić jako tablicę za pomocą obiektu.Values (typ) .flat (). Następnie sprawi, że wartości obiektu jako pojedyncza tablica.

const input1 = {
   "0" : {
      "name" : "John",
      "last_name" : "Doe"
   },
   "1" : {
      "name": "Mary",
      "last_name": "Ann"
   }
}

function search(input, key) {
  return Object.values(input).flat().filter(({ name }) => name === key);
}

console.log(search(input1, "John"));
1
Derek Wang 9 październik 2020, 02:28