rap*_*2-h 4 javascript ecmascript-6
有没有办法修剪对象的所有属性?换句话说,我可以更改一下:
{a: ' a', b: 'b ', c: ' c '}
Run Code Online (Sandbox Code Playgroud)
对此:
{a: 'a', b: 'b', c: 'c'}
Run Code Online (Sandbox Code Playgroud)
看来我无法映射对象,那么如何将函数应用于所有属性并获取对象呢?
您可以使用Object.keys()方法来迭代对象属性并更新其值:
Object.keys(obj).map(k => obj[k] = obj[k].trim());
Run Code Online (Sandbox Code Playgroud)
演示:
Object.keys(obj).map(k => obj[k] = obj[k].trim());
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您的object值可以是其他数据types(不仅是strings),则可以添加检查以避免调用.trim()non strings。
Object.keys(obj).map(k => obj[k] = typeof obj[k] == 'string' ? obj[k].trim() : obj[k]);
Run Code Online (Sandbox Code Playgroud)
您可以使用Object.keys来减少和修剪值,它看起来像这样:
function trimObjValues(obj) {
return Object.keys(obj).reduce((acc, curr) => {
acc[curr] = obj[curr].trim()
return acc;
}, {});
}
const ex = {a: ' a', b: ' b', c: ' c'};
console.log(trimObjValues(ex));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3701 次 |
| 最近记录: |