如何从javaScript对象中删除值?

时间:2018-11-06 07:36:07

标签: javascript object

var object = {
   'ex1': '123',
   'ex2': '234',
   'ex3': '345',
   'ex4': '456',
   'ex5': '678'
}

按如下所示删除不带remove属性的值的最佳方法是什么?

var object = {
   'ex1': '',
   'ex2': '',
   'ex3': '',
   'ex4': '',
   'ex5': ''
}

5 个答案:

答案 0 :(得分:3)

您可以获取键,进行迭代并为属性分配所需的值。

var object = { ex1: '123', ex2: '234', ex3: '345', ex4: '456', ex5: '678' };

Object
    .keys(object)
    .forEach(k => object[k] = '');

console.log(object);

答案 1 :(得分:3)

只需使用for...in即可遍历对象属性:

var object = {
   'ex1': '123',
   'ex2': '234',
   'ex3': '345',
   'ex4': '456',
   'ex5': '678'
}

for (const prop in object) { object[prop] = '' };

console.log(object);

答案 2 :(得分:2)

使用Object.keys遍历对象键,并将值设置为空。另外,您还需要命名Object以外的对象,因为它已经是javascript中的预定义对象。

var object = {
   'ex1': '123',
   'ex2': '234',
   'ex3': '345',
   'ex4': '456',
   'ex5': '678'
}

Object.keys(object).forEach(key => {
   object[key]  = ''
})
console.log(object);

答案 3 :(得分:0)

此外,您也可以使用reduce函数来达到它。

var obj = {
   'ex1': '123',
   'ex2': '234',
   'ex3': '345',
   'ex4': '456',
   'ex5': '678'
}

const new_object = Object.keys(obj).reduce((agg, item) => {
  agg[item] = ''
  return agg
}, {})

console.log(new_object)

  

reduce()方法在以下位置执行reducer函数(由您提供)   数组的每个成员产生一个输出值。

编辑:

关于reduce的通知将返回一个新对象(它不会覆盖现有对象)。

如果您想覆盖现有对象,请查看使用forEach循环的其他答案。

答案 4 :(得分:0)

我认为方法很多。

我喜欢这个:

    const obj = {
      ex1: '123',
      ex2: '234',
      ex3: '345',
      ex4: '456',
      ex5: '678'
    }

    for (const p in obj) obj[p] = null;

    console.log(obj);

但是我发现使用ES6迭代器的也可以接受:

    const obj1 = {
      ex1: '123',
      ex2: '234',
      ex3: '345',
      ex4: '456',
      ex5: '678'
    }

    for (k of Object.getOwnPropertyNames(obj1)) {
      obj1[k] = null;
    }

    console.log(obj1);