Помогите понять как работает код(из learn.javascript)

397
02 января 2018, 17:01

Создайте функцию isEmpty(obj), которая возвращает true, если в объекте нет свойств и false – если хоть одно свойство есть.

function isEmpty(obj) {
  /* ваш код */
}
var schedule = {};
alert( isEmpty(schedule) ); 
schedule["8:30"] = "подъём";
alert( isEmpty(schedule) ); 

Вот ответ

function isEmpty(obj) {
  for(var key in obj){
    return false;
  };
  return true;
}

Почему перебор вызван для obj но переберает ассоциативный массив schedule?

function isEmpty(obj) {
  for(var key in schedule){
    return false;
  };
  return true;
}
var sss = {};
var schedule = {};
alert(isEmpty(schedule)); // true
alert(isEmpty(sss)); // true
schedule["8:30"] = "подъём";
alert(isEmpty(schedule)); // false
alert(isEmpty(sss)); // false
Answer 1

isEmpty функция которую ниже вызывают (в алертах) для массива schedule

Answer 2

Дело в том что в объектах можно задавать свойства через квадратные скобки, просто этот синтаксис похож на то, как задаются значения в массивах.

var obj = {};
obj.id = 5;
obj["id"] = 5; // то же самое

И да, в javascript объекты это и есть ассоциативные массивы, смотрим тут - https://learn.javascript.ru/object

READ ALSO
Как передать значение в callback функцию

Как передать значение в callback функцию

Как передать значение i в function чтобы после того как пришел результат для конкретной итерации можна было сохранить результат для конкретного...

411
Пагинация своими руками

Пагинация своими руками

Всех с наступающимРебята подскажите как сделать в пагинации 5 шагов в лево

277
Проблема с data-id

Проблема с data-id

Суть в том, что data-id не соответствуетНе могу понять почему

293