lkmrus
@lkmrus
IT-engineer

Как клонировать объект в другой объект?

Вот как делал я:
let i = 0;
    function rowTasks() {
      i += 1;
      return 'row' + i;
}
    // Действие(добавление строки) на нажатие кнопки PB
    PB.on('click', function (e) {
          let numRow = rowTasks();
          let delrowNum = "del" + numRow;
          class Tasks {
            constructor(row, marka, model, FromPrice, ToPrice, FromYear, ToYear, FromMileage, ToMileage, mkpp, akpp) {
              this.row = row;
              this.marka = marka;
              this.model = model;
              this.FromPrice = FromPrice;
              this.ToPrice = ToPrice;
              this.FromYear = FromYear;
              this.ToYear = ToYear;
              this.FromMileage = FromMileage;
              this.ToMileage = ToMileage;
              this.mkpp = mkpp;
              this.akpp = akpp;
              return this;
            }
          }
          Task = new Tasks(
            numRow,
            $("#marka").val(),
            $("#model").val(),
            $("#FromPrice").val(),
            $("#ToPrice").val(),
            $("#FromYear").val(),
            $("#ToYear").val(),
            $("#FromMileage").val(),
            $("#ToMileage").val(),
            $("#mkpp").prop('checked'),
            $("#akpp").prop('checked')
          );
          if (typeof mainTask !== 'object') {
            mainTask = {};
          }
          mainTask['row' + i] += Task;
          let numRowText = `<tr class=${numRow}>` +
            "<td>" + Task.marka + "</td>" +
            "<td>" + Task.model + "</td>" +
            "<td>" + Task.FromPrice + " - " + Task.ToPrice + "</td>" +
            "<td>" + Task.FromYear + " - " + Task.ToYear + "</td>" +
            "<td>" + Task.FromMileage + " - " + Task.ToMileage + "</td>" +
            "<td id='kpp'>" + kpp(Task.mkpp, Task.akpp) + "</td>" +
            "<td>" + `<input type="button"  class="btn btn-danger delete" id=${delrowNum} name="delete" value="Удалить"></td>` +
        "</tr>";
      //добавление
      $(".tableResult").append(numRowText);
      //Удаление строки при нажатии на кнопку "#" + delrowNum
          $("#" + delrowNum).on('click', function (event) {
            // console.log(event);
            $("." + numRow).hide(300);
            console.log(numRow);
          });

Вот тут сам вопрос:
//Оба вариант, этот - mainTask.numRow += Task и тот что ниже работают не правильно;
      mainTask[numRow] += Task;

      console.log(JSON.stringify(mainTask));


А вот что падает в консоль при создании 3 строк:
{"row1":"undefined[object Object][object Object]"} main.js:116:17
{"row1":"undefined[object Object][object Object]","row2":"undefined[object Object][object Object]"} main.js:116:17
{"row1":"undefined[object Object][object Object]","row2":"undefined[object Object][object Object]","row3":"undefined[object Object][object Object]"}


А мне надо чтобы я увидел внутри каждой строки объект с данными которые в него попадали.
Подскажите, что делаю не так и какие есть варианты еще.
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы