Перебор свойств и методов объектов
for()
С помощью цикла for мы можем перебрать объект как обычный массив и получить все его свойства и методы и их значения:
var fruit = new Map([
['1', 'Яблоко'],
['2', 'Апельсин'],
['3', 'Груша']
]);
for (let key of fruit.keys()) {
//ключи
console.log(key);
}
for (let key of fruit.values()) {
//значения
console.log(key);
}
ForOf()
В ES6 появился новый цикл, предназначенный конкретно для перебора объекта, он имеет следующий синтаксис:
var fruit = new Map([
['1', 'Яблоко'],
['2', 'Апельсин'],
['3', 'Груша']
]);
for (let key of fruit) {
// ключ
console.log(key[0]);
// значение
console.log(key[1]);
}
ForEach()
По сути, это разновидность цикла for
, которая используется когда нужно обработать все элементы объекта:
var fruit = new Map([
['1', 'Яблоко'],
['2', 'Апельсин'],
['3', 'Груша']
]);
fruit.forEach(function(value,key) {
// ключ
console.log(key);
// значение
console.log(value);
});
Функции Object.entries, Object.keys, Object,values
С помощью дополнительных функций Object.entries
, Object.keys
, Object.values
можно получить все свойства (в том числе методы) объекта и их значения.
Object.entries()
Функция в качестве параметра принимает объект и возвращает массив пар название_свойства - значение
, где каждая пара свойство-значение представляет массив:
const tom = {
name: "Tom",
age: 26,
print(){
console.log(`Name: ${this.name} Age: ${this.age}`);
}
};
for(const prop of Object.entries(tom)) {
console.log(prop);
}
Консольный вывод:
["name", "Tom"]
["age", 26]
["print", ƒ]
Object.keys()
Функция озволяет получить массив названий всех свойств объекта. Например, возьмем выше опредеенный объект tom
:
const tom = {
name: "Tom",
age: 26,
print(){
console.log(`Name: ${this.name} Age: ${this.age}`);
}
};
// ["name", "age", "print"]
console.log(Object.keys(tom));
Соответственно можно перебрать этот набор и получить значения свойств:
for(const prop of Object.keys(tom)) {
// получаем по названию значение свойства
const value = tom[prop];
console.log(prop,value);
}
Консольный вывод:
name Tom
age 26
print ƒ print(){
console.log(`Name: ${this.name} Age: ${this.age}`);
}
Object.values()
Функция возвращает массив, который содержит все значения свойств объекта:
const tom = {
name: "Tom",
age: 26,
print(){
console.log(`Name: ${this.name} Age: ${this.age}`);
}
};
// ["Tom", 26, print()]
console.log(Object.values(tom));