js判断对象是否为空对象的几种方法

JavaScript019

js判断对象是否为空对象的几种方法,第1张

1.将json对象转化为json字符串,再判断该字符串是否为"{}"

var data={}

var b=(JSON.stringify(data) =='{}')

if(b==true){

    console.log('是的')

}else{

    console.log('不是')

}

2.for in 循环判断

var obj = {}

var b = function() {

for(var key in obj) {

return false

}

return true

}

alert(b())//true

4.Object.getOwnPropertyNames()方法

此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空

注意:此方法不兼容ie8,其余浏览器没有测试

var data = {}

var arr = Object.getOwnPropertyNames(data)

alert(arr.length == 0)//true

5.使用ES6的Object.keys()方法

与4方法类似,是ES6的新方法, 返回值也是对象中属性名组成的数组

var data = {}

var arr = Object.keys(data)

alert(arr.length == 0)//true

6.Object.keys(res.data.list).map(id =>{

  let bankList = {

    code: id,

    text: res.data.list[id]

  }

  this.columns.push(bankList)

})

新建测试代码页

请点击输入图片描述

请点击输入图片描述

【“对象”是泛指js变量】测试代码如下

请点击输入图片描述

【“对象”是泛指js变量】测试结果如下

请点击输入图片描述

【“对象”是实指js对象】测试代码如下

请点击输入图片描述

【“对象”是实指js对象】测试结果如下

请点击输入图片描述

【对象”兼容上述两种】测试代码如下

请点击输入图片描述

【对象”兼容上述两种】测试结果如下

请点击输入图片描述

/**

             * 判断传入参数是否为空

             */

            function isEmpty(v) {

                switch (typeof v) {

                case 'undefined' :

                    return true

                case 'string' :

                    if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0)

                        return true

                    break

                case 'boolean' :

                    if (!v)

                        return true

                    break

                case 'number' :

                    if (0 === v || isNaN(v))

                        return true

                    break

                case 'object' :

                    if (null === v || v.length === 0)

                        return true

                    for (var i in v) {

                        return false

                    }

                    return true

                }

                return false

            }