You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript/Vue中如何清空对象的所有属性值?

清空JavaScript对象属性的两种实用方案

一、直接删除所有属性(让对象变空)

你现在写的代码已经能实现删除mappingData的所有自有属性,最终让它变成空对象:

for (const prop of Object.getOwnPropertyNames(this.mappingData)) {
    delete this.mappingData[prop];
}

嫌麻烦的话也可以用更简洁的写法:

Object.keys(this.mappingData).forEach(prop => delete this.mappingData[prop]);

如果允许直接替换整个对象,最简单的方式是直接赋值空对象:

this.mappingData = {};

注意:直接赋值空对象不会影响其他指向原对象的引用,而delete方式会修改原对象本身。

二、保留属性结构,仅清空属性值

要是你想保留mappingData的属性结构(比如留着projectFieldOptions数组、safety子对象的框架,只清空内容),得递归处理不同类型的属性:

function clearObjectValues(obj) {
    for (const prop in obj) {
        if (obj.hasOwnProperty(prop)) {
            const val = obj[prop];
            if (Array.isArray(val)) {
                // 清空数组内容,保留数组本身
                val.length = 0;
            } else if (typeof val === 'object' && val !== null) {
                // 递归处理子对象
                clearObjectValues(val);
            } else {
                // 基础类型值置空,也可以改成null/undefined
                obj[prop] = '';
            }
        }
    }
}

// 调用方法清空所有值
clearObjectValues(this.mappingData);

这个方法会根据属性类型做对应处理:字符串、数字这类基础类型直接置空;数组清空元素但保留数组引用;子对象则递归清空内部的属性值。

内容的提问来源于stack exchange,提问作者Shibbir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 08:06:27