[英]How to trim the object value and returned with new object?
我想从对象中修剪值,但不起作用。
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
有人帮我吗?
您需要在每个回调的底部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更干净(非常现代的环境或需要polyfill):
var obj = {'name' : 'arif ', 'city':'chennai'}; var newObj = Object.fromEntries( Object.entries(obj) .map(([key, val]) => [key, val.trim()]) ); console.log(newObj);
您可以使用Object.keys()方法来迭代对象属性并更新其值:
var obj = {'name' : 'arif ', 'city':' chennai'}; Object.keys(obj).forEach(k => obj[k] = obj[k].trim()); console.log(obj);
您可以使用以下方式:
var obj = {'name' : 'arif', 'city':'chennai'};
var y=Object.keys(obj).reduce((acc, curr) => {
acc[curr] = obj[curr].trim()
return acc;}, {});
当前,传递obj来减少函数,它需要累加器,因此会引起问题。 如果这对您不起作用,请恢复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.