首页 > 解决方案 > 使用 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/存在或两者都存在,则将两者都删除。然后从中创建一个数组来推送。

标签: javascriptnode.js

解决方案


您可以在同一位置上进行 2 次替换map

const processed = flatten.map(obj => {
    return obj.file.replace("0:/", "").replace("../../uploads/", "");
});

推荐阅读