javascript - 如何将对象放入对象内部
问题描述
我正在做一个收入网站。所以我需要放像鱼部分这样的部分,在那个部分里面我放了一些收入。
因此,我初始化了一个列表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;
}
因此,我预计将收入的名称放入该部分,并将成本放入收入的名称中。
然后我可以将其他收入放入部分,依此类推。
解决方案
数组中的每一项都已经是一个对象。您可以只在该对象上指定一个新属性并设置该值。
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'
}]
}];