js判断是否为空对象、js对象序列化+反序列化

一、js判断是否为空对象

https://www.cnblogs.com/sefaultment/p/9444345.html

方案 1:

var data = {};
var b = JSON.stringify(data) == "{}";
alert(b); //true

方案 2:

Object.keys(obj)返回不包括原型上的可枚举属性,即自身的可枚举属性
var data = {};
var b = Object.keys(data).length === 0;

方案 2 模拟实现:

for in语法遍历原型及自身上的可枚举属性,需要结合hasOwnProperty去除原型上的可枚举属性
var data = {};
function isEmptyObj(obj) {
    for (var key in obj) {
        if ({}.hasOwnProperty.call(obj, key)) return false;
    }
    return true;
}
var b=isEmptyObj(data);
console.log(b);

方案 3:

Objcet.getOwnPropertyNames(obj)返回不包括原型上的所有自身属性(包括不可枚举的属性)
var data = {};
var b=Object.getOwnPropertyNames(data)===0;
console.log(b);

 个人示例:

    //开关开启状态--添加新增配置
        if (switchstate) {
            var usavsthreeapipath11 = JSON.parse(usavsthreeapipath1);    //对象序列化
            for (var i in usavsthreeapipath11) {
                //过滤空值
                if (usavsthreeapipath11[i] != "") {
                    usavsthreeapipath[i] = usavsthreeapipath11[i];
                }
            }
        }
        $("input[name=usavsthreeapipath]").val(JSON.stringify(usavsthreeapipath));     //对象反序列化
        //判断是否对象为空对象
        if (JSON.stringify(usavsthreeapipath) == "{}") {
            usbasic.errorMsg("请为音视频广播系统添加配置项,否则影响系统部分功能使用");
            return false;
        }
posted @ 2022-12-29 14:14  じ逐梦  阅读(69)  评论(0)    收藏  举报