【问题标题】:Build 2 level javascript array inside loop在循环内构建 2 级 javascript 数组
【发布时间】:2015-04-30 22:13:03
【问题描述】:

我不知道标题是否错误...我不知道应该使用哪个术语来解释所需的结果 - 我试图达到的最终结果是这样的:

var data = [
    {
        value: 300,
        color:"#F7464A",
        highlight: "#FF5A5E",
        label: "Red"
    },
    {
        value: 50,
        color: "#46BFBD",
        highlight: "#5AD3D1",
        label: "Green"
    },
    {
        value: 100,
        color: "#FDB45C",
        highlight: "#FFC870",
        label: "Yellow"
    }
]

我正在尝试在 .each 循环中构建这种类型的数组,同时从表单中获取值(可以增加行数..)

这是我现在得到的(“不起作用”):

// GET VALUES FROM TR
var cnt = 0;
var datasets = [];
$('.pie-table > tbody > tr').length;
$('.pie-table > tbody > tr').each(function() {

    var ctrid = '#' + $(this).attr('id');
    var size = $(ctrid).find('input#value').val();
    var color = $(ctrid).find('input#color').val();
    var hlight = $(ctrid).find('input#highlight').val();
    var label = $(ctrid).find('input#label').val();



    if (size.length > 0) {
        datasets[cnt] = 'value: ' + size + ', color:"' + color + '", highlight: "' + hlight + '", label: "' + label + '"';
    }

    cnt++;
})

var pieData = [];
for (var key in datasets) {
    pieData.push(datasets[key]);
};

我怎样才能获得与该循环内的示例类似的结构?

【问题讨论】:

    标签: javascript arrays loops each


    【解决方案1】:

    您的对象必须是对象,而不是字符串:

    if (size.length > 0) {
      datasets[cnt] = {
        value: size,
        color: color,
        highlight: hlight,
        label: label
      };
    }
    

    【讨论】:

    • 这似乎是对的!必须用 parseInt 包裹“大小” - 但除此之外,这很漂亮!非常感谢朋友。
    【解决方案2】:

    看看这个:

    if (size.length > 0) {
        // Take Blank Object
        var obj = {};
    
        // Create keys and assign value
        obj['value'] = size;
        obj['color'] = color;
        obj['highlight'] = hlight;
        obj['label'] = label;
    
        // Everything complete now push data in array
        datasets.push(obj);
    }
    

    【讨论】:

    • 哇,你真快!我不知道为什么,因为 chrome 没有突出显示正确的行 - 只是突出显示一些
      但我得到“未捕获的类型错误:未定义不是函数”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多