пытаясь добавить несколько похожих объектов в другой объект - PullRequest
0 голосов
/ 06 февраля 2012

Я пытаюсь написать функцию, которая добавляет новую «строку» с необязательной «ячейкой» к объекту.Вот мой код:

   var init = function() {
    var num = 0;
    var count = 0;

    var SC = {}

    var rowAdd = function() {
        num = num + 1
        var cellstate = false;

        var objCount = count + 1

        var rowObj = {
            number: num,
            cell: cellstate
        }

        return SC.rowObj;
    }

    var initialize = function() {
        rowAdd();
    }
initialize();
}
$(document).ready(function() {
    init();

    addRowBtn.click(function() {
        rowAdd();
    });

    addCellBtn.click(function() {
        SC.row1.cell = true;
    });
});

Этот подход переписывает строку каждый раз, когда я вызываю rowAdd().В конце я хочу, чтобы один объект SC содержал каждую строку, и каждая строка должна иметь свойство cell.Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 06 февраля 2012

Попробуй это. Вы можете просто использовать num для objCount тоже, и нет необходимости в переменной cellState.

var init = function() {
    var num = 0, SC = {}

    var rowAdd = function() {
        num = num + 1;
        SC["row" + num] = {
            number: num,
            cell: false
        }
        return SC;
    }
}
0 голосов
/ 06 февраля 2012

Вам нужно, чтобы на SC был объект массива для хранения ваших строк.

var SC = { rows: [] };

А потом добавить к нему

SC.rows.push(rowObj);

Для доступа

SC.rows[index]
0 голосов
/ 06 февраля 2012

Как насчет создания SC массива и добавления новой строки в массив:

var SC = [];

var rowAdd = function() {
    num = num + 1
    var cellstate = false;

    var objCount = count + 1;
    var rowObj = "row" + objCount;

    var rowObj = {
        number: num,
        cell: cellstate
    }

    return SC.push(rowObj);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...