js判断对象的几种方法

JavaScript013

js判断对象的几种方法,第1张

1、for in 循环

eg:var obj = {}

        var b = function () {

            for (var key in obj) {

                return false

            }

            return true

        }

        console.log(b())  // true

2、对象序列化(将对象转换为字符串)后进行判断

eg:var data = {}

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

        console.log(b)  // true

3、jquery的isEmptyObject()方法

eg:  var data = {}

        var b = $.isEmptyObject(data)

        console.log(b)  // true

4、Object.getOwnPropertyNames()方法

eg:  var data = {}

        var arr = Object.getOwnPropertyNames(data)

        console.log(arr.length == 0)  // true

5、ES6中的Object.keys()方法

eg:  var data = {}

        var arr = Object.keys(data)

        console.log(arr.length == 0)  // true

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)

})

判断一个对象是否为空,介绍如下三种判断方法:

1、直接用for...in...遍历属性,结果为真是“非空数组”,否则是“空数组”,代码如下:

function judgeObj(obj){

for(var a in obj){

return alert('非空对象')

}

return alert('空对象')

}

2、通过JSON自带的.stringify方法来判断,代码如下:

if(JSON.stringify(c)=='{}'){

console.log('空对象')

}

3、ES6新增的方法Object.keys(),代码如下:

if(Object.keys(obj).length==0){

console.log('空对象')

}else{

console.log('非空对象')

}