Что означает такая запись?

Здравствуйте. Есть json объект.
Как понимаю это перебор свойств. Как относиться "prop" к "data.yandex"?

Object.keys(data.yandex).forEach(function(prop) {         
         $yanfexForm.find('input[name="' + prop + '"]').val(data.yandex[prop])            
})
  • Вопрос задан
  • 219 просмотров
Решения вопроса 2
Ni55aN
@Ni55aN
propэто свойства, которые есть в объекте data.yandex

Подробнее: https://www.w3schools.com/js/js_arrays.asp пункт Associative Arrays
Формально это ассоциативный массив, когда вместо числового индекса может быть что-то другое, например просто строка. Но в JS такое представлено объектом, который и состоит из данных с именованными индексами
Ответ написан
Комментировать
shaks
@shaks
data.yandex - это объект. У объекта нет метода forEach, он есть у массива. Поэтому мы получаем массив ключей объекта используя Object.keys, и запускаем цикл. А внутри цикла мы уже обращаемся непосредственно к тому или иному ключу объекта data.index.
вот пример:

const data = {yandex: { popka: 'popka value', durak: 'durak value' }}
// => undefined
Object.keys(data.yandex)
// => Array [ "popka", "durak" ]
Object.keys(data.yandex).forEach(function(key){
   console.log(data.yandex[key]) // вернет сначала popka value потом durak value
})


Как относиться "prop" к "data.yandex"?

обычное дело. неправильное имя переменной. Правильным именем было бы key тогда читать код будет понятнее, и станет ясно не задумываясь, что key - является ключом объекта data.yandex
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AnneSmith
самая ленивая
название свойств
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы