Задать вопрос
Millerish
@Millerish

JS. Как переложить из одного массива данные в другой?

Доброе время суток!

Помогите решить вопрос по работе с массивом. Нужно переложить с многомерного массива данные в одномерный. При совпадении имени (Euroshop, Tur) не добавлять элемент и сложить сумму(2500+2500) и площадь(7500) .

Исходные данные:

var m = [ ['Euroshop', 2500, 7500] , ['Euroshop', 2500, 7500], ['Tur', 2500, 7500] ];
var TOTAL_PAINTING = 3;
var m2 = [];


На выходе должно быть так:
m2 = ["Euroshop", 5000, 15000, "Tur", 2500 7500];

Пробую так:
for (var i = 0; i < TOTAL_PAINTING; i++) {
            if (m2.length == 0){
                m2.push(m[i][0]);
                m2.push(m[i][1]);
                m2.push(m[i][2]);
            }
            else {
                debugger;
                var status = true;
                var price = 0;
                for (var j = 0; j < m2.length; j++) {
                    if (m2[j] == m[i][0]) {
                        for (var g = m2.length; g >= 0; g--) {
                            if (m2[j] == m[i][0]){
                                m2[j+1] = m2[j+1] + m[i][1]
                            }
                        }
                        status = false;
                    }
                }
                if (status == true){
                    m2.push(m[i][0]);
                    m2.push(price);
                    m2.push(m[i][2]);
                }
            }

        }

В чем ошибка??? Как правильно?
  • Вопрос задан
  • 1356 просмотров
Подписаться 1 Оценить 1 комментарий
Ответ пользователя Millerish К ответам на вопрос (3)
Millerish
@Millerish Автор вопроса
for (var i = 0; i < TOTAL_PAINTING; i++) {
            if (m2.length == 0){
                m2.push(m[i][0]);
                m2.push(m[i][1]);
                m2.push(m[i][2]);
            }
            else {
                var status = true;
                var price = 0;
                for (var j = 0; j < m2.length; j++) {
                    if (m2[j] == m[i][0]) {
                        for (var g = m2.length; g >= 0; g--) {
                            if (m2[g] == m[i][0]){
                                m2[j+1] = m2[j+1] + m[i][1]
                                m2[j+2] = m2[j+2] + m[i][2]
                            }
                        }
                        status = false;
                    }
                }
                if (status == true){
                    m2.push(m[i][0]);
                    m2.push(m[i][1]);
                    m2.push(m[i][2]);
                }
            }

        }
Ответ написан