var object = {
'ex1': '123',
'ex2': '234',
'ex3': '345',
'ex4': '456',
'ex5': '678'
}
按如下所示删除不带remove属性的值的最佳方法是什么?
var object = {
'ex1': '',
'ex2': '',
'ex3': '',
'ex4': '',
'ex5': ''
}
答案 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);