将Javascript对象值设置为空

guz6ccqo  于 2023-02-02  发布在  Java
关注(0)|答案(3)|浏览(331)

我对js比较陌生,有没有办法把一个JS对象中的键(字段)的值都设为null?不用手工一个一个的去做?因为对象比较大,我试过用Object.values(obj) == null,但是不行,我看过答案here,但是我不明白它是怎么把值设为null的,我觉得只是在循环,对不对?

a5g8bdjr

a5g8bdjr1#

在我看来,最快、可读性最强的方法是:

Object.keys(obj).forEach(key => obj[key]=null);

keys从给定对象中检索所有键,然后只需循环访问以将它们设置为null。

ojsjcaue

ojsjcaue2#

for (const field in object) object[field] = null
goqiplq2

goqiplq23#

不要改变原始对象,复制、返回和使用它。

createEmptyValues(obj){ 
  let copyObj = {...obj};
  for (const [key, value] of Object.entries(copyObj)) {
    if(Array.isArray(copyObj[key])){
      // if set array to empty then use copyObj[key] = [];
      // if set individual keys of your array to empty, do below
      for (let index = 0; index < copyObj[key].length; index++) {
        copyObj[key][index] = this.createEmptyValues(copyObj[key][index]); 
      }
    } else {
      switch(typeof value){
        case 'string':
        copyObj[key] = '';
        break;
        case 'number':
        copyObj[key] = '';
        break;
        case 'boolean':
        copyObj[key] = false;
        break;
        case 'object':
        if(value !== null){
          copyObj[key] = this.createEmptyValues(value);
        }
        break;
      }
    }
  }
  return copyObj;
}

相关问题