javascript - 使用 map() 两次后创建一个数组
问题描述
我可能会或可能不会获得 2 个不同格式的数据位。
它们都需要以不同的方式去除字符。请原谅变量名,一旦我开始工作,我会让它们变得更好。
const cut = flatten.map(obj => {
return obj.file.replace("0:/", "");
});
const removeDots = flatten.map(obj => {
return obj.file.replace("../../uploads/", "");
})
然后我需要将数组推送到我的 mongo 数据库中。
let data;
for (const loop of cut) {
data = { name: loop };
product.images.push(data);
}
let moreData;
for (const looptwo of removeDots) {
moreData = {name: looptwo};
product.images.push(moreData);
}
我想知道是否有办法加入它们或执行 if/else,因为这样做的结果是,如果我有 2 条记录,它最终会重复,我得到 4 条记录而不是 2 条。此外,其中 2 条记录记录格式不正确,即:“0:/”仍然存在,而不是被剥离。
理想情况下,我想检查是否0:/
存在,将其删除,如果../../uploads/
存在或两者都存在,则将两者都删除。然后从中创建一个数组来推送。
解决方案
您可以在同一位置上进行 2 次替换map
:
const processed = flatten.map(obj => {
return obj.file.replace("0:/", "").replace("../../uploads/", "");
});
推荐阅读
- netty - jar netty-tcnative-openssl-static 似乎动态链接到机器上的 OpenSsl 库,这是正确的吗?
- javascript - 从时间线图表触发事件
- r - 使用重复的分组条形图
- osgi - @Reference 字段注入的 osgi 服务随机出现“null”
- interpolation - xarray多维插值到没有大矩阵的点
- python - 如何选择多个复选框并使用 Flask 在 MySql 中插入
- vim - ctrl-p 的 vim 插入模式自动完成在点后不起作用
- php - 创建 laravel 项目的问题 - 不要以 root/超级用户身份运行 Composer
- django - 如何使任何参数未知的 Django REST Framework 请求失败?
- c++ - 为什么没有为 std::multimap 实现 try_emplace?