Javascript массивы неопределенные значения

65
7

У меня есть код, который генерирует неопределенные значения в массиве, не имея никакого смысла.

вот код:

gcc_py = 8;
gcc_pyd = 12;
var aci = 360/gcc_pyd;
var parcalar = new Array();
var renkler = new Array();

for(var i = 0;i<gcc_pyd;i++){
parcalar.push(aci);
renkler.push('#000');
}

console.log(parcalar);
console.log(renkler);

console.log(parcalar) выводит это:

[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, undefined × 2]

есть ли у вас какие-либо идеи для неопределенных значений в массиве?

спросил(а) 2021-01-19T16:44:31+03:00 9 месяцев, 1 неделя назад
1
Решение
79

Думаю, вы меняете массивы потом. Консоль будет отражать эти изменения, например, затем показывать объекты вместо чисел и строк. Кроме того, при удалении свойств из массива (с помощью delete см. Раздел "Удаление элементов массива в JavaScript - удаление vs-сращивания)), они все равно будут отображаться как инициализированные, но пустые (см." Что такое "undefined x 1" в JavaScript?).

ответил(а) 2021-01-19T16:44:31+03:00 9 месяцев, 1 неделя назад
46

Вывод для меня показывает

[30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]

["#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000"]

Возможно, вы добавили какой-то материал.prototype в Array где-то еще в коде?

ответил(а) 2021-01-19T16:44:31+03:00 9 месяцев, 1 неделя назад
47

Когда я запускаю ту же конфигурацию:

<script>
var gcc_py = 8;
var gcc_pyd = 12;
var aci = 360 / gcc_pyd;
var parcalar = new Array();
var renkler = new Array();

for(var i = 0; i < gcc_pyd; i++){
parcalar.push(aci);
renkler.push('#000');
}

console.log(parcalar);
console.log(renkler);
</script>

Я получил:


[30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30]
["#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000", "#000"]

не уверен, что вы видите.

ответил(а) 2021-01-19T16:44:31+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема