计算对象函数JavaScript中另一个对象属性的长度
Counting length of another object property within object function -- JavaScript?
我是JavaScript对象的新手,所以请耐心等待。
这是我的JavaScript:
var dragSources = {
elementSources: {
squareSource: document.getElementById('squareSource'),
circleSource: document.getElementById('circleSource')
},
ifDragSource: function(elem) {
console.log(this.elementSources.length);
}
};
如果你看看console.log(this.elementSources.length);
,你可能会知道我正在试图获得elementSources
属性的长度。但是,它返回undefined
。我做错了什么?
它是一个对象,而不是数组,因此它没有length
属性。
您可以使用Object.keys(this.elementSources).length
来获取密钥的数量。
.keys()
方法本质上返回对象的键的数组。
在这种情况下,Object.keys(this.elementSources)
返回:
["squareSource", "circleSource"]
然后我们得到这个数组的长度,它是2。
var dragSources = {
elementSources: {
squareSource: document.getElementById('squareSource'),
circleSource: document.getElementById('circleSource')
},
ifDragSource: function(elem) {
console.log(Object.keys(this.elementSources).length);
}
};
dragSources.ifDragSource(); // 2
从技术上讲,如果您在代码中需要length属性,则必须将长度值直接存储在对象中。使用Object.key函数会降低代码效率。每次调用该函数访问该值时,都必须一次又一次地重新运行同一个函数。
为了访问js数组中的length属性,BIG O总是等于1。因为当更新数组时,length属性会随之更新但在这种情况下,大O将是Object的大小,并且(O)=n
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 你能用来自数组的属性名称生成一个对象吗
- 将javascript对象(属性+值)合并到一个对象中
- 如何计算一个对象中五个属性中有多少是非null的
- 获取一个对象´s属性的名称使用字符串
- JavaScript-通过类似的属性查找对象,并将其推送到一个新的数组中
- 通过另一个对象上的字符串值为 javascript 对象属性赋值
- Join验证对象数组,这样只有一个对象具有特定属性
- Javascript:如何制作一个包含4个具有相同属性的对象的数组
- 将值和属性从一个对象合并到另一个对象
- 替换对象's属性,其中包含JavaScript中另一个对象的属性,不包含库
- 有没有一个lodash函数可以合并两个对象并删除其中一个对象的属性(如果它们没有)'不存在于另一个中
- Javascript:我如何定义一个对象'的属性
- 使计算属性依赖于emberjs中另一个对象的所有属性
- 检查数组中的对象属性是否与具有相同ID的另一个对象重复
- 将对象属性放在另一个对象中
- 将一个对象的属性替换为另一个对象的属性
- 如何检查一个对象是否嵌套在另一个对象的属性中作为属性
- Javascript 使用 $.extend 按值复制,但只有一个对象属性
- 根据另一个对象中的键和属性从数组中删除对象