微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从JavaScript对象数组的键中删除字符?

如何解决如何从JavaScript对象数组的键中删除字符?

我有一个如下的javascript对象:

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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。