问题描述
result = [
{"Account_ID__r.Name":"Yahoo Inc Taiwan","Contact_ID__r.Email":"jvernold@thestar.com"},{"Account_ID__r.Name":"WXIA-TV","Contact_ID__r.Email":"jwoolbright@11e.com"}
]
我需要从对象的键中删除句点(。)。 (例如:键Account_ID__r.Name
应该变成Account_ID__rName
)
上面的数组应如下所示:
result = [
{"Account_ID__rName":"Yahoo Inc Taiwan","Contact_ID__rEmail":"jvernold@thestar.com"},{"Account_ID__rName":"WXIA-TV","Contact_ID__rEmail":"jwoolbright@11e.com"}
]
我尝试使用for (var key of Object.keys(result)) { }
来构造一个新数组,但是没有用。
我尝试过的代码:
result.forEach(item => {
for (var key of Object.keys(item)) {
var keyWithoutPeriod = key.replace(/\./g,'');
this.datatableData.push({
[keyWithoutPeriod]: item[key]
});
}
});
它的代码转换如下:
datatable = [
{"Account_ID__rName":"Yahoo Inc Taiwan"},{"Contact_ID__rEmail":"jvernold@thestar.com"},{"Account_ID__rName":"WXIA-TV"},{"Contact_ID__rEmail":"jwoolbright@11e.com"}
]
这不是我需要的格式。请帮忙。谢谢?。
解决方法
您可以获取条目,替换不需要的字符并构建新对象。
const
data = [
{ "Account_ID__r.Name": "Yahoo Inc Taiwan","Contact_ID__r.Email": "jvernold@thestar.com" },{ "Account_ID__r.Name": "WXIA-TV","Contact_ID__r.Email": "jwoolbright@11e.com" }
],result = data.map(o => Object.fromEntries(Object.entries(o).map(([k,v]) => [k.replace(/\./,''),v])));
console.log(result);