0

Есть json.

wt = {
"days": [{
 "2": [{"1":"1","2":"2","4":"4","6":"6"}],
 "3": [{"1":"1","3":"3","7":"7"}]
}],
"time_from_h": [{
 "2": [{"1":"8","2":"9","4":"8","6":"10"}],
 "3": [{"1":"8","3":"9","7":"8"}]
}],
"time_from_m": [{
 "2": [{"1":"0","2":"5","4":"30","6":"50"}],
 "3": [{"1":"10","3":"0","7":"10"}]
}],
"time_to_h": [{
 "2": [{"1":"21","2":"20","4":"22","6":"20"}],
 "3": [{"1":"19","3":"17","7":"19"}]
}],
"time_to_m": [{
 "2": [{"1":"30","2":"40","4":"40","6":"30"}],
 "3": [{"1":"59","3":"10","7":"40"}]
}]
}

Как обратится к: wt.days.2.4 (получить именно значение элемента)

Как проверить, если ли wt.days.2

Т.е. будет функция, в которую будет передаваться id. Так вот надо проверить, если в id=2 в wt.days и если есть, то вывести wt.days.2.4

igramnet
  • 599

1 Answers1

1

var wt = {
"days": [{
 "2": [{"1":"1","2":"2","4":"4","6":"6"}],
 "3": [{"1":"1","3":"3","7":"7"}]
}],
"time_from_h": [{
 "2": [{"1":"8","2":"9","4":"8","6":"10"}],
 "3": [{"1":"8","3":"9","7":"8"}]
}],
"time_from_m": [{
 "2": [{"1":"0","2":"5","4":"30","6":"50"}],
 "3": [{"1":"10","3":"0","7":"10"}]
}],
"time_to_h": [{
 "2": [{"1":"21","2":"20","4":"22","6":"20"}],
 "3": [{"1":"19","3":"17","7":"19"}]
}],
"time_to_m": [{
 "2": [{"1":"30","2":"40","4":"40","6":"30"}],
 "3": [{"1":"59","3":"10","7":"40"}]
}]
};

console.log(wt.days[0][2][0][4]); // странная запись из-за того, что объекты содержат массивы, а массивы содержат объекты, отсюда и нулевые индексы console.log(typeof wt.days[0][2]); // элемент 2 есть console.log(typeof wt.days[0][4]); // элемента 4 нет, "undefined"

Visman
  • 16,518
  • 8
  • 26
  • 56
  • Спасибо. А как правильнее записать такую структуру? – igramnet Oct 22 '16 at 15:18
  • 1
    Какую именно? Если вы про wt, то вам нужно из нее исключить массивы (квадратные скобки) и оставить только объекты (фигурные скобки), тогда лишние индексы (нулевые) при обращении к нужным элементам структуры не понадобятся. – Visman Oct 22 '16 at 15:22