将数组对象分组以进行敲除绑定

时间:2014-10-08 22:10:15

标签: javascript knockout.js

我有一个长度为27的对象数组:

[object(array)]
....
....

此数组中的每个项目都是空的,或者由具有如下所示属性的数组对象组成。这可能有几个循环,所以它会有很多对象。

function MainTests(testName, section, totalExpected, totalPasssed, totalDuration, loopExpected, loopPassed, loopDuration) {
    var self = this;           
    self.sectionName = section;
    self.testName = testName;
    self.totalPassExpect = totalExpected;
    self.totalPassRate = totalPasssed;
    self.totalDuration = totalDuration;
    self.loopPassExpected = loopExpected;
    self.loopPassRate = loopPassed;
    self.loopDuration = loopDuration;                                                  
}

我希望按sectionNametestName进行分组:

{
    section: sectionName,
    tests: [testName:testName, totalPassExpect: totalExpected........loopDuration:loopDuration..]
}

我试过这个,但它只按sectionName分组:

self.GroupMainTest = ko.computed(function () {
    var mainTestArray = [];
    for (var i = 0; i < allMainTests.length ; i++) {
        var group = {};
        var result = allMainTests[i];
        if (result.length != 0) {
            for (var j = 0; j < result.length; j++) {
                if (group[result[j].sectionName] == undefined) {
                    group[result[j].sectionName] = [group[result[j].sectionName]];
                }
                group[result[j].sectionName].push(result[j].sectionName)
                group[result[j].sectionName].push(result[j].totalPassExpect)
                group[result[j].sectionName].push(result[j].totalPassRate)
                group[result[j].sectionName].push(result[j].totalDuration)
                group[result[j].sectionName].push(result[j].loopPassExpected)
                group[result[j].sectionName].push(result[j].loopPassRate)
                group[result[j].sectionName].push(result[j].loopDuration)
                group[result[j].sectionName].push(result[j].testName)
            }
            mainTestArray.push(group);
        }
        else {
            mainTestArray.push(result);
        }
    }
    return mainTestArray;
});

我的目标是实现类似于this plnkr

你能帮忙吗?

0 个答案:

没有答案