Чтение массива объектов из Firebase + Firepad + Ace Editor
Я сохраняю данные в Firebase, когда пользователь начинает печатать в редакторе ACE с помощью firepad.
Данные хранятся в Firebase как массив. Каждый символ в индексе массива.
Я просто набрал "Привет, это", затем "Привет, Нитхи", затем вставил "Привет, я, Нити"
Действительно трудно прочитать данные по ключу, значению, массиву, индексу со значением -ve.
Есть ли плагин для преобразования обрабатывать индекс?
Данные:
B11
o
0: 7
1: -1
B12
o
0: 7
1: "N"
B13
o
0: 8
1: "ithi"
B14
o
0: 7
1: "M"
2: 5
B15
o
0: 8
1: "e"
2: 5
Я действительно устал от создания кода вроде:
Которые растут и становятся все более сложными.
codeTimeFirebaseRef.on('value', function(snapshot) {
var data = snapshot.val();
var i = 1;
var jsonData = {};
var jsonDataArray = {};
async.forEach(Object.keys(data), function(key) {
var code = data[key];
if (code.o.length === 1) {
if (jsonDataArray.length > 1) {
jsonData.answer = jsonDataArray;
codes.push(jsonData);
i++;
jsonData = {};
jsonDataArray = {};
} else {
jsonData.index = i;
jsonData.time = code.t;
if (typeof code.o[0] === 'string') {
jsonDataArray = code.o[0];
} else if (typeof code.o[0] === 'number') {
jsonDataArray = jsonDataArray.substring(0, code.o[0]);
}
}
} else {
if (typeof code.o[1] === 'string') {
jsonDataArray += '' + code.o[1];
} else if (typeof code.o[1] === 'number') {
jsonDataArray = jsonDataArray.substring(code.o[0], code.o[1]);
}
}
Пожалуйста, помогите пройти.