在javascript中添加长度属性到对象有什么用?

时间:2018-02-23 11:50:13

标签: javascript

数组支持长度属性以及字符串确实,但对象本身并不具有长度属性。

如果我们正确添加长度如下。

{"a":0,"b":0,length:2}

上述代码的用例场景是什么

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);

我希望这是有道理的。