gpt4 book ai didi

javascript - 对象数组上的长度属性未更新

转载 作者:行者123 更新时间:2023-11-28 18:38:06 26 4
gpt4 key购买 nike

考虑以下对象的两个问题:

//new obj

var obj = {};
obj['cars'] = [];
obj['cars']['toyota'] = 1;
obj['cars']['mazda'] = 0;


console.log(obj);
console.log(JSON.stringify(obj));
  1. 为什么我的 cars 数组的长度为 0?我必须手动更新长度属性吗?

  2. 当我的字符串化对象包含参数时,为什么它是空的,我假设它与 length 属性相关联?

fiddle :https://jsfiddle.net/wcd7f8Lz/

最佳答案

car 被初始化为数组,但用作对象。并且对象没有长度属性...

要获取对象的长度,可以执行 ̀̀̀̀Object.keys(obj).length (获取键列表,因为它是一个数组,所以它有一个长度)。

但问题还在于,您将汽车初始化为数组,但却将其用作对象...

请参阅此处的文档:

http://www.w3schools.com/js/js_arrays.asp

http://www.w3schools.com/js/js_objects.asp

解决方案是将其初始化为对象:

//new obj

var obj = {};
obj['cars'] = {}; //And other object
obj['cars']['toyota'] = 1;
obj['cars']['mazda'] = 0;


console.log(obj);
console.log(JSON.stringify(obj));

但是如果你想要一个简单的数组:

//new obj
var obj = {};
obj['cars'] = [];
obj['cars'][1] = "toyota";
obj['cars'][0] = "mazda";


console.log(obj);
console.log(JSON.stringify(obj));

语法为 ̀array[identifier] = value;(而不是 ̀̀̀̀̀数组[值] = 标识符)

我已经更新了 fiddle 。

关于javascript - 对象数组上的长度属性未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com