javascript - 编写数组的最佳实践

标签 javascript arrays

我有一个包含大约 250 个条目的数组,每个条目都有自己的值数组。每个条目都是 map 上的一个点,每个数组保存以下信息:

姓名, 该点可以连接到的另一个点数组, 纬度, 经度, 名字的缩写, 一个 bool 值, 和另一个 bool 值

该数组是由我团队中的另一位开发人员编写的,他是这样编写的:

names[0]=new Array;
names[0][0]="Campus Ice Centre";
names[0][1]= new Array(0,1,2);
names[0][2]=43.95081811364498;
names[0][3]=-78.89848709106445;
names[0][4]="CIC";
names[0][5]=false;
names[0][6]=false;

names[1]=new Array;
names[1][0]="Shagwell's";
names[1][1]= new Array(0,1);
names[1][2]=43.95090307839151;
names[1][3]=-78.89815986156464;
names[1][4]="shg";
names[1][5]=false;
names[1][6]=false;

我个人可能会这样写:

    var names = []
    names[0] = new Array("Campus Ice Centre", new Array[0,1,2], 43.95081811364498, -78.89848709106445, "CIC", false, false);
    names[1] = new Array("Shagwell's", new Array[0,1], 43.95090307839151, -78.89815986156464, 'shg", false, false);

当然,它们都工作得很好,但我想知道的是:

1) 实际处理过程中,一个比另一个花费更长的时间吗? 2)我是否错误地假设我的同一事物版本的紧凑性有好处?

我只是有点担心他的 3000 行代码与我的 3-400 行代码能否得到相同的结果。

预先感谢您的任何指导。

最佳答案

您真正想要做的是定义一个自定义数据类型,它可以更准确地表示您的数据。我不确定您使用的是什么语言,所以这里有一些伪代码:

class Location
{
    double latitude;
    double longitude;
    String Name;
    String Abbreviation;
    bool flag1;//you should use a better name
    bool flag2;
}

然后你可以创建一个数组来保存所有 Location 对象,它会更具可读性和可维护性。

Locations = new Array;
Locations[0] = new Location("Shagwell's",...);
....

===编辑===

因为你说你正在使用 javascript,那么最佳实践可能是将你的数据存储在 json 文本文件中,这样做的好处是从代码文件中删除数据,并且如果你愿意的话,可以有一个非常容易编辑的数据源进行更改。

你的 JSON 文件看起来像这样

[{"lat":"23.2323", "long":"-72.3", "name":"Shagwell's" ...},
{"lat":"26.2323", "long":"-77.3", "name":"loc2" ...},
...]

然后,您可以将 json 文本存储在网络服务器上可访问的位置(例如“data.json”),然后如果您使用 jquery,则可以通过执行以下操作来加载它:

$.getJSON("data.json", function(data) { //do something with the data});

关于javascript - 编写数组的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2815216/

相关文章:

c++ - 在数组搜索中返回迭代器索引

javascript - MVC 4中ajax成功方法加载部分 View

javascript - 如何使 Kendo-ui 选项卡按需加载内容(带有源作为 java Controller 的 iframe)

java - 调用方法以单行打印数组

java - 将二进制文件读入字节数组

C : Checking if an item is in a list

Java字节数组操作

javascript - 如何使用 gulp-sass 插件提高 Gulp 任务性能?

javascript - Google Maps API3 InfoWindow 并查询标记是否在多边形中

javascript - 如何使用 svg.js 从自定义事件访问元素