【发布时间】:2019-04-27 12:03:04
【问题描述】:
真的很难理解这个问题...... 我正在尝试将数组中的项目排序到另一个数组中,但已分类。我的代码目前正在运行,但问题是我需要知道“排序”数组的大小。目前,有四个条目与“数据”一起使用。前两个 data.cat 与 n 进行比较,它们的 ID 被推入 sort[0]。当两个不匹配时,将 1 添加到 c。然后代码再次循环,将新匹配推入 sort[1] 等。
var data = [
{"cat": 0, "id":"AAAA"},
{"cat": 0, "id":"BBBB"},
{"cat": 1, "id":"CCCC"},
{"cat": 1, "id":"DDDD"},
{"cat": 1, "id":"EEEE"},
{"cat": 1, "id":"FFFF"}, //pseudodata
{"cat": 1, "id":"GGGG"},
{"cat": 2, "id":"HHHH"},
{"cat": 2, "id":"IIII"},
{"cat": 2, "id":"JJJJ"},
{"cat": 3, "id":"KKKK"}
];
var sort = [[], [], [], [],]
function sortDates(){
var n = 0;
for (var i = 0; i < data.length; i++){
if (data[i].cat == n){
console.log("Category " + n +" entry: " + data[i].id);
sort[n].push(data[i].id);
} else {
console.log("Entry " + data[i].id + " does not match. Moving to next category...");
n++;
i--;
}
}
}
这一切正常,但是如果我在数据数组中添加更多内容(例如 {"cat": 4, "id":"LLLL"}),程序会因“sort[n] is not a function”而崩溃”。这是因为排序数组中只有四个可用项。
所以我只是想知道,有没有办法解决这个问题?如果数据数组总是在改变大小,并且添加了更多条目/类别,我是否必须继续手动调整排序数组的大小?
【问题讨论】:
标签: javascript arrays loops multidimensional-array 2d