Loading

JavaScript 清空对象属性的方法

JavaScript 清空对象属性的方法, 无限极清空

function clearObj(obj) {
    // 判断是不是对象
    if(!Object.prototype.toString.call(obj) == "[object Object]") {
        return false;
    }
    for (const key in obj) {
        if(Object.prototype.toString.call(obj[key]) == "[object Object]") {
            // 处理多级非空对象
            if(Object.keys(obj[key]).length > 0) {
                clearObj(obj[key]);
            }
        } else if (Array.isArray(obj[key])) {
            // 数组置空
            obj[key] = [];
        } else {
            // 其他类型, 如果以下对象没有包含类型的将会是 undefined 
            let dataType = {number: 0, string: "", boolean: false, function: () => {}}
            let _key = typeof obj[key];
            obj[key] = dataType[_key];
        }
    }
    return obj;
}

原始数据:

{
	a: "哈哈哈",
	b: 1,
	c: true,
	d: {
		a: "嘻嘻",
		b: 2,
		c: false,
		d: {
			a: "嘻嘻",
			b: 2,
			c: true,
			d: [1,2,3]
		},
		e: ["哈哈", "嘻嘻"]
	},
	e: [1,2,3],
	f: () => {
		console.log("函数")
	},
        g: null
}

清空后数据:

{
	a: "",
	b: 0,
	c: false,
	d: {
		a: "",
		b: 0,
		c: false,
		d: {
			a: "",
			b: 0,
			c: false,
			d: [ ]
		},
		e: [ ]
	},
	e: [ ],
	f: () => { },
        g: undefined
}
posted @ 2021-02-06 21:58  王小大  阅读(1257)  评论(0)    收藏  举报