这两个逻辑流程之间的差异需要帮助来纠正它

时间:2011-07-16 12:05:55

标签: javascript

var array = ['single', 'multiple']

for (vb = 0, len = obj.length; vb < len; vb++) {
    var row = Ti.UI.createTableViewRow({
        height: 35,
        selectionStyle: 'NONE'
    });
    row.add(Ti.UI.createLabel(pm.combine($$.labelBrown, {
        left: 10,
        text: obj[vb]
    })));

    row.add(Ti.UI.createLabel(pm.combine($$.labelBrown, {
        left: 220,
        text: 'Information to be displayed'
    })));
    this.rowData[vb] = row;
}

//上面的代码工作正常,可以打印动态行。

以下代码不起作用......为什么?

var obj= { single: ["one", "sd"], multiple: ["two", "sdsd"] },
    for (vb in obj) {
        if (obj.hasOwnProperty(vb)) {
            for (var i = 0, len = vb.length; i < len; ++i) {
                var row = Ti.UI.createTableViewRow({
                    height: 35,
                    selectionStyle: 'NONE'
                });
                row.add(Ti.UI.createLabel(pm.combine($$.labelBrown, {
                    left: 10,
                    text: vb
                })));

                row.add(Ti.UI.createLabel(pm.combine($$.labelBrown, {
                    left: 220,
                    text: obj[vb][0]
                })));

                this.rowData[vb] = row;
            }
        }
    }

我正在尝试基于Array动态创建行。我改为Obj,在其中包含键和值属性......它不起作用......

1 个答案:

答案 0 :(得分:1)

最后使用分号:

var obj= { single: ["one", "sd"], multiple: ["two", "sdsd"] };

在本地声明vb

for (var vb in obj) {

for (var i = 0, len = vb.length; i < len; ++i) {

应该是

for (var i = 0, len = obj[vb].length; i < len; ++i) {