使用JavaScript搜索一大组键值对的最快方法是什么?

使用JavaScript搜索一大组键值对的最快方法是什么?,javascript,reactjs,switch-statement,Javascript,Reactjs,Switch Statement,我有一个ReactJS应用程序,它从远程API获取数据并显示数据。返回的数据包含与活动名称相对应的活动ID。不过,活动数据库对我来说并不容易访问。例如,帐户和位置也会发生同样的情况 我的方法是为每个帐户、活动、位置创建一个JS文件,在每个文件中添加一个接受ID的方法,在其中添加一个大开关,将ID与其中的ID列表匹配,并返回所需的名称 这种方法在帐户和位置上效果很好,分别有800个和170个案例。当涉及到有11000个案例的活动时,npm run build现在需要很长时间才能运行(我在超过15分

我有一个ReactJS应用程序,它从远程API获取数据并显示数据。返回的数据包含与活动名称相对应的活动ID。不过,活动数据库对我来说并不容易访问。例如,帐户和位置也会发生同样的情况

我的方法是为每个帐户、活动、位置创建一个JS文件,在每个文件中添加一个接受ID的方法,在其中添加一个大开关,将ID与其中的ID列表匹配,并返回所需的名称

这种方法在帐户和位置上效果很好,分别有800个和170个案例。当涉及到有11000个案例的活动时,
npm run build
现在需要很长时间才能运行(我在超过15分钟后终止)

我的问题是:npm运行构建所花费的时间是否与文件大小或内部代码的语法相对应?如果我让
npm运行build
慢慢来,这种方法会导致问题吗?或者有没有更好更快的方法,比如地图

编辑:这是数据的一个示例:

Account ID: 113300512
Account Name: 113300512:account1
样本:

switch(id) {
    case "170501010001":
    return "170501010001: Text in arabic"
    case "170501010002":
    return "170501010002: Text in arabic"
}

这可能是解决方案之一

用方法创建一个类,Stote-to-store,find-to-find。 我不建议使用开关箱

AccountRepository.js

'use strict';

class AccountRepository {
    constructor() {
        this.accountReadings = new Map();
    }

    store(id, value) {
        this.accountReadings.set(id, value);
    }

    find(id) {
        if (this.accountReadings.has(id)) {
            return this.accountReadings.get(id);
        } else {
            return [];
        }
    }
}

module.exports = new AccountRepository();
以及如何使用。

import AccountRepository from './AccountRepository';

AccountRepository.store(...);

AccountRepository.find(...);

你能提供账户、地点和案例的详细结构吗?我为数据添加了一个示例,它们都遵循相同的结构,ID的数字值和名称的字符串。案例如何?你能提供一个示例案例吗?切换(id){case“170501010001”:返回“170501010001:阿拉伯语示例文本”case“170501010002”:返回“170501010002:阿拉伯语示例文本”但这样我将不得不做AccountRepository.store(…);11000次?如果你有正确的结构,例如“new Map”,你可以避开该存储([[1,'one'],[2,'two']])。否则您可以使用存储方法-它应该可以正常工作,不会出现性能问题。