Действительно изо всех сил пытаюсь разобраться в этом ... Я пытаюсь отсортировать элементы из массива в другой массив, но по категориям.Мой код в настоящее время работает, но проблема в том, что мне нужно знать размер массива «sort».На данный момент существует четыре записи, которые работают с «данными».Первые два data.cat сравниваются с n, а их идентификаторы помещаются в 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] не является функцией ".Это потому, что в массиве sort есть только четыре доступных элемента.
Так что мне просто интересно, есть ли способ обойти это?Если массив данных постоянно меняет размер и добавляется больше записей / категорий, нужно ли мне вручную изменять размер массива сортировки?