我想用不同的键遍历数组中的对象,而不使用 for-each 循环:
[ { id: 1,
ip: 'xx.xxx.xx.xx',
mn1: '',
mn2: '',
mn3: '',
mn4: '',
mn5: '',
mn6: '',
mn7: '' },
{ id: 2,
ip: 'xxx.xxx.xx.xx',
mn1: '',
mn2: '',
mn3: '',
mn4: '',
mn5: '',
mn6: '',
mn7: '' },
{ id: 4,
ip: 'xxx.xxx.xx.xxx',
mn1: '',
mn2: '',
mn3: '',
mn4: '',
mn5: '',
mn6: '',
mn7: '' } ]
我想检查每列 mn 的长度值,然后用一些信息更新它,我可以只做 if else 条件,但我认为有更好的方法来做到这一点。我尝试使用 Object.entries
然后进行 for 循环,但由于 id 和 ip 列,它不起作用。
最佳答案
也许这样的事情对你有用?此解决方案对您的问题采用函数式方法,并避免显式使用 for-loop
构造:
var input = [ { id: 1,
ip: 'xx.xxx.xx.xx',
mn1: '',
mn2: '',
mn3: '',
mn4: '',
mn5: '',
mn6: '',
mn7: '' },
{ id: 2,
ip: 'xxx.xxx.xx.xx',
mn1: '',
mn2: '',
mn3: '',
mn4: '',
mn5: '',
mn6: '',
mn7: '' },
{ id: 4,
ip: 'xxx.xxx.xx.xxx',
mn1: '',
mn2: '',
mn3: '',
mn4: '',
mn5: '',
mn6: '',
mn7: '' } ];
var output = input.map(object => {
return Object.entries(object).reduce((result, entry) => {
let key = entry[0];
let value = entry[1];
if(key.startsWith('mn')) {
value = `updated value for ${ key }`;
}
result[key] = value;
return result;
}, {});
});
console.log(output);
关于javascript - 如何在忽略某些键的同时转换对象中的某些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53400126/