Как поместить объект внутрь объекта - PullRequest
0 голосов
/ 07 января 2019

Я делаю сайт доходов. Поэтому мне нужно поместить такие разделы, как раздел «Рыба», и внутри этого раздела я добавлю некоторые доходы.

Итак, я инициализирую список (list = []), и когда пользователь помещает раздел, я помещаю это имя в список (например, list[0] = {"name" = name}) и добавляю это имя в раздел.

function showSection() {
      tb = "";

      for (let key in list) {

tb += "<details><summary><h3>" + list[key]["name"] + "</h3></summary>";
        tb += "<input type=\"button\" name=\"addRevenue\" id=\"addRevenue\" value=\"Add revenue\" onclick=\"ask_revenue(" + key + ");\">"
        tb += "<div>List of revenue of the section " + list[key]["name"] + ".</div>"
        tb += "<div id=\"list" + key + "\"></div><br>"
        tb += "</details>";

      }
      document.getElementById("list").innerHTML = tb;
    }

// Итак, после добавления раздела я хочу добавить доход с этим кодом:

function addRevenue() {
      var nameRevenue, cost;
      nameRevenue = document.getElementById("name_Revenue").value;
      cost = document.getElementById("cost").value;

      list[indexOfRevenue]["name"] = {
        "nameRevenue": nameRevenue
      }

      list[indexOfRevenue]["name"]["nameRevenue"] = {
        "cost": cost,
      };

      ta += "<div>Name of revenue: " + list[indexOfRevenue]["name"]["nameRevenue"] + ".</div>"
      ta += "<div>Cost: " + list[indexOfRevenue]["name"]["nameRevenue"]["cost"] + ".</div>"
      document.getElementById("list" + indexOfRevenue).innerHTML = ta;
    }

Итак, я ожидал указать в разделе, название выручки и в названии выручки укажите стоимость.

А потом я могу поместить другой доход в раздел, и так далее, и так далее.

1 Ответ

0 голосов
/ 07 января 2019

Каждый элемент в массиве уже является объектом. Вы можете просто указать новое свойство для этого объекта и установить значение.

function addRevenue() {
  var nameRevenue, cost;
  nameRevenue = document.getElementById("name_Revenue").value;
  cost = document.getElementById("cost").value;

  if (list[indexOfRevenue]['revenues'] === undefined) {
    list[indexOfRevenue]['revenues'] = [];
  }

  var revenue = {
    nameRevenue: nameRevenue,
    cost: cost
  };

  list[indexOfRevenue]['revenues'].push(revenue);

  for (var i = 0; i < list[indexOfRevenue]['revenues'].length; i++) {
    var currentRevenue = list[indexOfRevenue]['revenues'][i];
    ta += "<div>Name of revenue: " + currentRevenue.nameRevenue + ".</div>"
    ta += "<div>Cost: " + currentRevenue.cost + ".</div>"
  }


  document.getElementById("list" + indexDaReceita).innerHTML = ta;
}

// Your object looks like this

let obj = [{
  name: 'Tom',
  revenues: [{
    nameRevenue: '600',
    cost: '1000'
  }, {
    nameRevenue: '250',
    cost: '400'
  }]
}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...