Время от времени вам может потребоваться петлю через объекты в JavaScript. Единственный способ сделать это до ES6 был с для ... в петля.
Проблема с для ... в Цикл состоит в том, что он итализатор по свойствам в цепочке прототипа. Когда вы пишите через объект с для ... в Цикл, вам нужно проверить, принадлежит ли свойство объекту. Вы можете сделать это с HasownProperty Отказ
for (var property in object) { if (object.hasOwnProperty(property)) { // Do things here }}Мы больше не должны положиться на для ... в и HasownProperty. Теперь. Есть лучший способ.
Лучший способ петли через объекты
Лучший способ петли через объекты – Сначала для преобразования объекта в массив. Тогда вы пишите через массив.
Вы можете преобразовать объект в массив с тремя методами:
Объект. Keys.Object.values.values.Object.entries.
Объект. Keys.
Объект. Keys Создает массив, который содержит свойства объекта. Вот пример.
const fruits = { apple: 28, orange: 17, pear: 54 };
const keys = Object.keys(fruits);
console.log(keys); // ["apple", "orange", "pear"]Object.values.values.
Object.values Создает массив, который содержит значения каждого свойства в объекте. Вот пример:
const fruits = { apple: 28, orange: 17, pear: 54 };
const values = Object.values(fruits);
console.log(values); // [28, 17, 54]Object.entries.
Object.entries создает массив массивов. Каждый внутренний массив имеет два предмета. Первый предмет – это свойство; Второй элемент – это значение.
Вот пример:
const fruits = { apple: 28, orange: 17, pear: 54 };
const entries = Object.entries(fruits);
console.log(entries); // [["apple", 28], ["orange", 17], ["pear", 54]]Мой любимый из трех – Object.entries. Потому что вы получаете как ключ и значения свойств.
Зацикливаться через массив
Как только вы преобразовали объект в массив с Объект. Keys , Object.values или Object.entries. Вы можете пройти петлю через него, как если бы это был нормальный массив.
const fruits = { apple: 28, orange: 17, pear: 54 };
// Looping through arrays created from Object.keys
const keys = Object.keys(fruits);
for (const key of keys) {
console.log(keys);
}
// ["apple", "orange", "pear"]
// ["apple", "orange", "pear"]
// ["apple", "orange", "pear"]Если вы используете Object.entries , вы можете захотеть разрушение массив в его ключ и свойство.
const fruits = { apple: 28, orange: 17, pear: 54 };
const entries = Object.entries(fruits);
for (const [fruit, count] of entries) {
console.log(`There are ${count} ${fruit}s`);
}
// "There are 28 apples"
// "There are 17 oranges"
// "There are 54 pears"Упаковка
Лучший способ петли через объекты сначала преобразуют его в массив одним из этих трех методов.
Объект. Keys.Object.values.values.Object.entries.
Затем вы обратитесь через результаты, как обычный массив.
Если этот урок помог вам, может быть наслаждаться Узнайте JavaScript , где вы узнаете, как строить все, что вы хотите с нуля. Зачисление для изучения JavaScript открывается в июле 2018 года (очень скоро!).
Спасибо за прочтение. Эта статья каким-либо образом поможет вам? Если бы я сделал, Я надеюсь, что вы думаете об этом ; Возможно, вы просто поможете кому-то, кто чувствовал то же самое, что вы делали, прежде чем прочитать статью. Спасибо.
Эта статья была первоначально размещена в мой блог . Подпишитесь на мой рассылка Если вы хотите больше статей, чтобы помочь вам стать лучшим разработчиком Frontend.
Оригинал: “https://www.freecodecamp.org/news/how-to-loop-through-objects-in-javascript-a80b7d2478ac/”