javascript - 替换对象数组中的字符
问题描述
我有一个对象数组,其中可能包含我希望删除的某些字符。在示例中为 £。我的数组结构如下:
const testArray = [
{ ASIN: 'ABC123', Rank: '£50', Sales: '£80' },
{ ASIN: 'ZYX123&', Rank: '£70', Sales: '£20' },
];
我想知道我是否可以通过获取数组,将其拆分为字符串,使用替换然后再次加入来使用类似替换功能的东西。
例如textArray.split(',').replace(/^\£/, '').join(',')
有人向我展示了这段代码,但我无法让它工作:
myArray.map(item => {
return Object.entries(item).reduce((agg, [key, value]) => {
agg[key] = value.replace(/^\£/, '');
return agg;
}, {});
});
我拆分成字符串并重新加入方法会起作用吗?有没有这样做的最佳实践方法?
解决方案
一种选择是将对象字符串化,替换,然后解析它:
const testArray = [
{ ASIN: 'ABC123', Rank: '£50', Sales: '£80' },
{ ASIN: 'ZYX123&', Rank: '£70', Sales: '£20' },
];
const newTestArray = JSON.parse(
JSON.stringify(testArray).replaceAll('£', '')
);
console.log(newTestArray);
也可以通过映射来转换对象Object.fromEntries
:
const testArray = [
{ ASIN: 'ABC123', Rank: '£50', Sales: '£80' },
{ ASIN: 'ZYX123&', Rank: '£70', Sales: '£20' },
];
const newTestArray = testArray.map(
obj => Object.fromEntries(
Object.entries(obj)
.map(([key, val]) => [key, val.replaceAll('£', '')])
)
);
console.log(newTestArray);
推荐阅读
- testing - RICO-Dataset - .json 文件基于哪种格式?
- java - 在受密码保护的 ZipInputStream 目录中解压缩文件
- python - 谷歌云计算实例启动时如何自动运行python脚本
- php - Wocomerce 不允许我为我的产品使用外部图片
- quill - 未捕获的 ReferenceError:未定义 Quill
- node.js - 如何在mongodb中查询具有多个引用数组的文档?
- django - 我正在使用 pinax-referral 但是当我跟进时,我得到了 raise.self.model.DoesNotExist 以及无法配置记录器的值错误
- python-3.x - 比较字典和数据框中的值
- tensorflow - 如何使用 TensorFlow C API 从字符串张量中提取字符串?
- html - Typed.js 不适用于多个实例