От автора: приветствую вас, друзья. В этой статье мы с вами продолжим знакомиться с наиболее сложным, но и не менее интересным типом данных в JavaScript — речь идет об объектах. Приступим?
Итак, мы уже немного представляем себе мощь объектов в JavaScript и удобство работы с ними. По сравнению с обычными переменными, объекты намного удобнее, в их свойствах можно хранить отдельные значения, вложенные объекты со своими свойствами и даже методы объектов, которые являются ни чем иным, как пользовательскими функциями.
В общем, в объекте может храниться масса всего и нужного. А как бы нам пройтись за раз по всему этому добру? Для этого JavaScript предлагает уже знакомый нам оператор in. Напомню, с помощью данного оператора мы можем проверить наличие свойства в объекте. Теперь попробуем использовать его для того, чтобы пробежаться по свойствам объекта.
Для начала взглянем на синтаксис необходимой нам конструкции:
1 2 3 |
for(var key in object){ // код } |
Как вы заметили, мы используем цикл for, но в незнакомом нам виде. Именно в таком виде мы и можем перебрать все свойства массива. Переменная key здесь условна и в нее на каждой итерации цикла попадает имя свойства объекта. После оператора in указывается название объекта, по свойствам которого мы проходимся в цикле. И практический пример:
1 2 3 4 5 6 7 8 9 10 |
var names = { name1: 'John', name2: 'Jane', hi: function(param){ console.log(param); } }; for(var prop in names){ console.log('Имя свойства: ' + prop + ', Значение: ' + names[prop]); } |
Как видим, мы перебрали все свойства объекта и вывели наименование свойства и его значение, в том числе и функцию (метод), которая сохранена в свойстве.
Как вы понимаете, мы не просто можем перебирать свойства, но и что делать с их значениями. Например, добавим к значению свойства, если это не функция, фамилию Doe. Ну а если это функция, тогда удалим это свойство из объекта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var names = { name1: 'John', name2: 'Jane', hi: function(param){ console.log(param); } }; console.log(names); for(var prop in names){ if(prop !== 'hi'){ names[prop] += ' Doe'; }else{ delete names[prop]; } } console.log(names); |
И результат в консоли:
Очень удобно, не так ли? На этом мы завершим текущую статью. Если вы хотите больше узнать о JavaScript, тогда рекомендую обратить свое внимание на уроки по JavaScript и отдельный курс по языку JavaScript. Удачи!