Получение последней части моей работы с массивами сводит меня с ума.По сути, у меня есть:
var array1 = [
["2", "1007"],
["5", "1042"],
["3", "1076"],
]
, и я хочу это ...
var array2 = [
["2", "1007", "1008"],
["5", "1042", "1043", "1044", "1045", "1046"],
["3", "1076", "1077", "1078"],
]
Другими словами, я хочу использовать первый элемент каждой подгруппы в качестве счетчика для последовательного управлениядополнения ко второму элементу.Это последняя часть, на которой я застрял и не могу понять, почему мой код не работает.Скрипка разбивает операцию на простые части.Это будет около 12 000 строк, поэтому я думаю, что мой текущий подход с несколькими циклами forEach не самый быстрый.Любые идеи о лучшей производительности (хотя они еще читабельны, пожалуйста), будут приветствоваться.
var array1 = [
["2", "1007"],
["5", "1042"],
["3", "1076"],
]
array2 = []
console.table(array1)
//--------
array1.forEach(e => {
for (var counter = 0; counter < e[0]; counter++) {
array2.push(e);
}
});
console.table(array2);
//--------
var myCol2 = 1007
var mycounter = 0
array2.forEach(e => {
if (e[1] == myCol2) {
mycounter = mycounter + 1
var myinteger = parseInt(e[1]) + mycounter // convert ref. to number
myinteger = myinteger.toString(); // convert ref. back to string
e[1] = myinteger
myCol2 = e[1]
}
else
{
myCol2 = e[1]
mycounter = 0
}
});
console.table(array2);
Fiddle: https://jsfiddle.net/u2fwy6hc/