Две задачи рассмотреть следующий объект:Длина свойство не обновляется на массивах объектов
//new obj
var obj = {};
obj['cars'] = [];
obj['cars']['toyota'] = 1;
obj['cars']['mazda'] = 0;
console.log(obj);
console.log(JSON.stringify(obj));
Почему мои авто массива имеет длину 0? Нужно ли вручную обновлять свойство длины?
Почему мой строковый объект пуст, когда в нем есть параметры. Предполагаю, что он связан с свойством length?
Fiddle: https://jsfiddle.net/wcd7f8Lz/
Измените 'cars' на объект. https://jsfiddle.net/u3tsu4gg/. Массивы имеют только индексирование на основе целых чисел, а не строки, как в вашем примере. Вы можете получить длину 'cars' с помощью' Object.keys (obj.cars) '.length; – Andy
@andy это работает, но почему это не работает правильно с массивом? – Edward
'obj.cars.push ('toyota'); obj.cars.push ('мазда'); obj.cars.length; // => 2' –