DrunkMaster
@DrunkMaster

Почему длинна массива 0?

var obj = '{"раз":0,"два":0,"три":1}';

my = JSON.parse(obj);

var proparr = [];
for (var prop in my) {
  proparr[prop] = my[prop];
}
console.dir(proparr);
console.log(proparr.length);

В итоге console.dir(proparr); показывает Array(0) но если в консоли есго развернуть там есть 3 ключа и их значения, но proparr.length показывает 0. Что не так?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 2
teknik2008
@teknik2008
Расскажите про GOLANG. Мне интересно
Потому что push

Массив в js - структура с ссылками на данные из чисел. Т.е ключ должен быть числом.
var obj = '{"раз":0,"два":0,"три":1}';

my = JSON.parse(obj);

var proparr = [];
for (var prop in my) {
  proparr.push ( my[prop]);
}
console.dir(proparr);
console.log(proparr.length);
Ответ написан
GeneMoss
@GeneMoss
void
У Вас это не массив, а объект. Для объекта length не работает.
Поэтому либо написать свою функцию подсчета, либо сделать как-нибудь так:
Object.keys(proparr).length;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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