如何在javascript中访问和排序2d数组

如何在javascript中访问和排序2d数组,javascript,arrays,Javascript,Arrays,我正在编写一个脚本,通过读取txt文件在javascript中初始化2d数组。下面是我代码的一些部分 var neighbor = {}; var temp = new Array(); neighbor[nodemap[ temparray[0]]] = temp; //nodemap[ temparray[0]] is an integer neighbor[nodemap[temparray[0]]]. push(nodemap[temparray[1]]); neighbor[nodem

我正在编写一个脚本,通过读取txt文件在javascript中初始化2d数组。下面是我代码的一些部分

var neighbor = {};
var temp = new Array();
neighbor[nodemap[ temparray[0]]] = temp; //nodemap[ temparray[0]] is an integer
neighbor[nodemap[temparray[0]]]. push(nodemap[temparray[1]]);
neighbor[nodemap[temparray[0]]]. push(nodemap[temparray[2]]);
.... // continue to add value
然后我想访问和排序数组,如下所示

for (var i = 0; i < n_count; i++);
{
  for (var k = 0; k < neighbor[i].length; k++);
    neighbor[k].sort(function(a,b){return a - b})
}
for(变量i=0;i

但是,我得到了一个错误,
邻居[I]身份不明
。您能告诉我如何修复吗?

您的
邻居
“数组”实际上是一个对象文本。因此,您应该循环使用
邻居的方法是:

for (var key in neighbor) {
    var cur = neighbor[key];
    cur.sort(function (a,b) {
        return a - b;
    });
}

好。。。什么是
i
?我想你应该用“k”而不是“i”?“我”在范围内吗?对不起,是k。。。我犯了错误,我编辑了帖子。如果
邻居[I]
未定义,那么
邻居[I][k]
也将无法访问。我还认为,
邻居[I]
应该是他们想要排序的数组。@AnthonyGrist是的,我开始意识到一些事情。我一直在编辑来解释更多。谢谢你指点out@JoshVo我知道,我一直在编辑我的答案。我刚做完。这有用吗?你能提供一个JSFIDLE来说明你的邻居的实际填写情况吗?谢谢Ian。它起作用了。但是,我还是需要回信,对吗?(即neighbor[key]=cur;)有什么方法可以直接排序吗?我正在处理一个非常大的数据…@JoshVo不,你不需要回信。当您有
var cur=neighbor[key]
cur
将是对
邻居中特定数组的引用。所以它在适当的地方被修改。这里有一个例子-。我想不出任何其他方法来分类这些