我正在修剪对象的值,但不起作用。
var obj = {'name' : 'arif', 'city':'chennai'};
var y = Object.keys(obj).reduce(function (obj, key) {
return obj[key] = String(obj[key]).trim();
}, {});
console.log(y); //undefined
有人在这里帮我吗?
您可以使用 Object.keys() 方法迭代对象属性并更新其值:
var obj = {'name' : 'arif ', 'city':' chennai'};
Object.keys(obj).forEach(k => obj[k] = obj[k].trim());
console.log(obj);
你需要在每个回调的底部return
下一次迭代的累加器, 您还应该对正在创建的对象和原始obj
使用不同的变量名,以便您可以分别引用两者:
var obj = {'name' : 'arif ', 'city':'chennai'};
var newObj = Object.keys(obj).reduce(function (newObj, key) {
newObj[key] = obj[key].trim();
return newObj;
}, {});
console.log(newObj);
另一种选择是使用Object.fromEntries
,它看起来更干净 IMO(非常现代的环境或需要填充物):
var obj = {'name' : 'arif ', 'city':'chennai'};
var newObj = Object.fromEntries(
Object.entries(obj)
.map(([key, val]) => [key, val.trim()])
);
console.log(newObj);