js获取object对象的长度

更新日期: 2018-08-07阅读量: 11061标签: 对象

我们都知道必须是具体数据类型才有长度,所以size和length都无法测量object对象的长度,那么如何计算对象的长度,即获取对象属性的个数呢?


方法一:通过Object.keys来获取

var obj = {'name' : 'fly' , 'sex' : 'male' , 'age' : '14'};
var arr = Object.keys(obj);
console.log(arr); // ['name','sex','age']
console.log(arr.length); //3


方法二:通过for in 遍历对象

var obj = {'name' : 'fly' , 'sex' : 'male' , 'age' : '14'};
function countProperties(obj){
  var count = 0;
    for(var key in obj){
        if(obj.hasOwnProperty(key)){
            count++;
        }
    }
    return count;
}
var len = countProperties(obj);
console.log(len);//结果为3

需要通过hasOwnProperty判断是否是对象自身可枚举的属性。


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: https://www.fly63.com/article/detial/989

比较 JavaScript 对象的四种方式

比较 JavaScript 中的原始值非常简单。只需使用任何一种可用的相等运算符即可,例如严格相等运算符:但是对象却有结构化数据,所以比较起来比较困难。

history对象详解及单页面路由实现

history对象保存着用户的上网记录,从浏览器窗口打开的那一刻算起。出于安全的考虑,开发人员无法得知用户浏览过的URL。不过,借由用户访问过的页面列表,同样可以在不知道实际URL的情况下实现后退与前进

Js创建对象的4种方式

创建对象的4种方式:方式一:通过对象字面量表示法(又称为直接量、原始方式)。object literals方式二:通过new和构造函数Object()、String()等。方式三:用自定义构造函数来初始化新对象。方式四:通过Object.create()

Object对象和数组有很多内置方法

Object.keys()返回对象键Object.values()的数组,返回对象值Object.entries()的数组,并以格式返回对象的键和相应值的数组[key, value]。

Js数学对象Math

写在前面:Javascript 中Math和其他对象不同,它具有数学常数和函数的属性和方法。因为它的属性是数学常数,所以不能被改变(可以进行赋值操作,但最后值不变)。Math的方法就是普通函数

利用 WeakMap 对 Vue 新建数组中的对象赋予 :key

在 Vue 中,对组件进行循环都需要加入key以便“就地复用”,可是在某些情况下,我们需要新建多个对象,而这些对象不是从后端获取到的,而是前端生成的,没有唯一值,且 Vue 目前版本只允许字符串,数字作为组件的 key

JavaScript arguments 对象详解

arguments 是一个类数组对象。代表传给一个function的参数列表。乍一看,结果是个数组,但并不是真正的数组,所以说 arguments 是一个类数组的对象(想了解真正数组与类数组对象的区别可以一直翻到最后)。

对象的隐式类型转换

只有在 JavaScript 表达式或语句中需要用到数字或字符串时,对象才被隐式转换。 当需要将对象转换成数字时,需要以下三个步骤:

js中Object.create vs new Function() 的区别

之前学习JavaScript 权威指南,说以后在JavaScript建立对象请使用Object.create() 尽量少使用 new Function() .这两个新建对象的方法到底有什么不同呢?new 方式实现方式,实际上是先新建了一个Object对象,再用这个对象继承至Base,最后再绑定this.

javascript中内置对象和浏览器对象的区别是什么?

JavaScript对象是包含相关属性和方法的集合体。在 JavaScript 中,对象是数据(变量),拥有属性和方法。在javascript中对象通常包括两种类型:内置对象和浏览器对象,此外,用户还可以自定义对象。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!