数组支持长度属性以及字符串确实,但对象本身并不具有长度属性。
如果我们正确添加长度如下。
{"a":0,"b":0,length:2}
上述代码的用例场景是什么
答案 0 :(得分:2)
对象本身没有length
。这取决于这个长度代表什么。
例如,在您发布的代码中,长度为4的原因并不明显,但在对象实际代表的内容中可能有意义。
答案 1 :(得分:0)
以下两种获取长度的方法。
你会注意到,如果你跟踪你自己的长度,显示代码有点短,但你需要一个完整的功能来添加一个新的密钥,你甚至需要另一个功能来删除它们。
object.keys
将密钥更改为一个数组,我们可以从中获取长度,当然,还需要花费几毫秒来进行转换。
我通常会假设计算机的错误会比我少,所以,如果可以的话,我应该尽可能多地加载它。
// initial set up
let obj1 = {"a":0,"b":0};
let obj2 = {"a":0,"b":0,length:2};
// initial lengths
console.log("obj1: "+Object.keys(obj1).length);
console.log("obj2: "+obj2.length);
// adding standard way
obj1["c"] = 0;
// adding to accomidate with length
function addObj2(key, value) {
obj2[key] = value;
obj2.length++;
}
addObj2("c",0);
console.log("--");
// new lengths
console.log("obj1: "+Object.keys(obj1).length);
console.log("obj2: "+obj2.length);
我希望这是有道理的。