处理修订数据集的最佳方法

时间:2019-10-25 07:01:38

标签: javascript arrays json

让我们说我们有一个包含国家及其电话前缀的数据集。符合以下条件的

var countryPhonePrefixes = [
    {
        'name': 'Spain',
        'prefix': '+34'
    },
    {
        'name': 'Austria',
        'prefix': '+43'
    },
    // and so forth
];

这将导致您的开发代码超过1000行(缩小之前)。我的问题是,关于如何获取或初始化此类数据集,是否有最佳做法?

我有:

  • 将其保留在代码中,并使用几乎每个IDE都具有的折叠功能,这样就不会打扰太多。
  • 将其保存在单独的JavasScript文件中,您还可以在其中执行与数据集相关的其他功能。 JavasScript库或多或少地起作用。
  • 使用AJAX进行检索。例如:服务器中jQuery.getJSON()文件中的.jsonxhttp.open()xhttp.send()以及服务器中的API等。

一些额外的上下文:我需要使用此数据集为整个应用程序中的几种形式生成国家电话前缀选择器的<option>。应用程序中已经有一个图标选择,其功能类似于我提出的第一个解决方案。

2 个答案:

答案 0 :(得分:1)

如果使用name访问前缀,则可以将name作为键并将prefix作为值的对象。

这种方法可以缩短代码并允许轻松访问前缀。

countryPhonePrefixes = {
    Spain: '+34',
    Austria: '+43'
};

答案 1 :(得分:1)

绝对应在自己的文件中存储1000行Javascript数据-对于开发而言,它太大了,无法与脚本逻辑存在于同一区域。

如果数据是静态的,则可以将其保存(并维护)在单独的文件中,同时将数据导入其他文件中。使用像Webpack这样的模块捆绑器将脚本打包到一个.js中,然后将其交付给客户端。

如果数据不是静态的(例如,可以从一个请求更改为另一个请求),则无法将其与其他数据捆绑在一起。相反,您可以:

  • 通过网络请求将数据发送到客户端。这可以正常工作,但会稍微增加数据可用所需的时间。

  • 另一个选项是使用自己的<script>标签发送数据。然后让您的其他Javascript解析脚本标签,例如:

const data = JSON.parse(
  document.querySelector('script[type="application/json"]').textContent
);

console.log(data);
<script type="application/json">[{"foo":"bar"}]</script>