JavaScript: Jak iterować po obiekcie?
Opublikowano: 13.01.2022 - tagi: JavaScript Obiekt Tablica Iteracja
Samo iterowanie po obiekcie jest dość proste. Możemy skorzystać z pętli for in:
const object = {
foo: {
label: 'Foo label',
value: 1
},
bar: {
label: 'Bar label',
value: 2
}
};
for (const key in object) {
console.log(`key: ${key} value: `, object[key]);
}
Ale co, w przypadku gdybyśmy potrzebowali użyć funkcji operujących na tablicach? Jak na przykład: reduce lub map.
Iterowanie po obiekcie, jak po tablicy
Żeby iterować po obiekcie, jak po tablicy możemy skorzystać z metody: keys klasy Object. Przykład:
const object = {
foo: {
label: 'Foo label',
value: 1
},
bar: {
label: 'Bar label',
value: 2
}
};
const total = Object.keys(object).reduce((result, currentKey) => result + object[currentKey].value, 0);
console.log(`Total: ${total}`); // Total: 3
Metoda keys zwraca tablicę kluczy dla danego obiektu.
Jeśli nie zależy nam na dostępie do kluczy, możemy skorzystać z innej metody tej samej klasy: values. Przykład:
const object = {
foo: {
label: 'Foo label',
value: 1
},
bar: {
label: 'Bar label',
value: 2
}
};
const total = Object.values(object).reduce((result, current) => result + current.value, 0);
console.log(`Total: ${total}`); // Total: 3