循环闭合 - 我在哪里放?

时间:2015-06-07 23:52:16

标签: javascript arrays json closures

关于previous post,我很难弄清楚在哪里为我正用于匹配 JSON 返回的数组设置循环闭包。

以下是我修改后的代码:

$(function()
{
    var $reports = $('#repOut');
    var techCount = 0;
    var repCount = 0;
    techs = ["Name_1", "Name_2"];

    function counts(tech, count)
    {
        this.tech = tech;
        this.count = count;
    }
    $.ajax(
    {
        type: 'GET',
        url: 'https://api.trello.com/1/board/BOARD_ID/checklists?checkItem_fields=name,state&key=MY_KEY&token=MY_TOKEN',
        dataType: 'jsonp',
        success: function(data)
        {
            $.each(data, function(i, repName)
            {
                var items = repName.checkItems;
                for (i = 0; i < items.length; i++)
                {
                    for (var n = 0; n < techs.length; n++)
                    {
                        techName = techs[n];
                    }
                    var rex = new RegExp(techName, "i");
                    var num = /\(\d+\)/;
                    if (rex.test(items[i].name))
                    {
                        var repFull = items[i].name;
                        repName = repFull.replace(/\.*$|-.*$/, "");
                        if (num.test(items[i].name))
                        {
                            var repNum = parseInt(/\d+/.exec(items[i].name), 10);
                            repCount += repNum;
                        }
                    }
                }
            });
            var techCount = new counts(techName, repCount);
            $reports.after("<table border =1 id='reports'><tr><th>Tech</th><th>Count</th></tr><tr><td>" + techCount.tech + "</td><td>" + techCount.count + "</td></td></tr></table>");
        }
    });
});

循环仅返回Name_2 JSON 值(但这一次,它会正确添加并显示在我的网页上)。我需要在techs数组中获取 EACH 名称的这些值并输出它们。我已经阅读了很多关于闭包的网站/文章/答案,我无法理解我的代码放在哪里/怎么把它放在我的代码中!

任何人都可以帮助提供一个关闭我的代码的示例吗?我是否正确怀疑需要关闭?

1 个答案:

答案 0 :(得分:1)

感谢所有反馈!我想我只需要一个人&#34;看着我的肩膀&#34;帮我看看明显的问题。以下是带有我评论的固定代码。

/*Start tableView */
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier   forIndexPath:indexPath] ;
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
     cell.textLabel.text = [tableData objectAtIndex:indexPath.row];


   UILabel *label = (UILabel *)[cell.contentView viewWithTag:@"H"];
    label.text = @"Demo";

    label = (UILabel *)[cell.contentView viewWithTag:@"h2"];
    label.text = @"Demo2";

    return cell;


}