唯一用户 ID 检查

时间:2021-07-21 17:18:29

标签: javascript node.js

删除重复项以确保 UserId 唯一的最快方法是什么?大约有 3000 万个 userId 需要检查。

用法

const userIds = {}

const transform = csv.format({ headers: false }).transform((row) => {
      if (userIds[row.user_id]) {
       console.log(`Found Duplicate ${row.user_id}`);
       return false;
      } else {
        userIds[row.user_id] = 1
      }

      return row;
});

问题是脚本在大约 20 分钟后挂起。我正在从 CLI 运行脚本。

1 个答案:

答案 0 :(得分:2)

Set 对象的算法比数组包含检查的算法快得多。

const userIds = new Set()

const transform = csv.format({ headers: false }).transform((row) => {

      if (userIds.has(row.user_id)) {

         console.log(`Found Duplicate ${row.user_id}`);
         return false;

      } else {

          userIds.add(row.user_id)

      }

      return row;
});