如何合并相同的值

时间:2014-10-29 08:26:23

标签: javascript c# asp.net

我需要一些帮助。我想将12,12,12,13,13,14,14,14,15,15这样的东西合并到12,13,14,15中。到目前为止我有这个代码。

 if ($('#branchName' + branchList.branch).length == 0) {
                    $('#zzz').append(
                        '<span>' + branchList.branch + '</span>' +
                            '<ul id="branchName' + branchList.branch + '">' +
                            '<li>' +
                            '<span id="combo' + branchList.combo + '">' + branchList.combo + '</span>' +
                            '</li>' +
                            '</ul>');
                    if ($('#combo' + branchList.combo).length == 0) {
                        //if exists go to else
                    } else {
                        //append combo
                    }
                }

                else {
                    $('#branchName' + branchList.branch).append(
                        '<li>' +
                            '<span id="combo' + branchList.combo + '">' + branchList.combo + '</span>' +
                            '</li>');           
                }

更新:我已将我的if上的数字合并到现有的数字上。现在我的问题是我应该在哪里再次放入我的组合的下一个if语句。

2 个答案:

答案 0 :(得分:2)

尝试过滤器属性。 假设您在数组中有这些值

arr=[1,1,1,2,3,4,5];
new_arr = arr.filter(function(item, pos) {
    return arr.indexOf(item) === pos;
});

filter,接受一个回调函数,并在数组的每个元素上调用它,如.map,最多取三个参数,元素的值(来自你的数组),索引和数组本身。

这背后的想法是,你拿一个元素然后检查indexOf(that_element)是否等于元素的位置。

<强>漫游。

  

步骤1:indexOf(1)= 0且pos = 0,indexOf(1)=== pos // true所以元素被推入new_arr   第2步:indexOf(1)= 0且pos = 1,//条件为false,因此丢弃。

等......

这种允许和丢弃的属性可能来自于鸭子打字

答案 1 :(得分:0)

您可以导入库Underscore
在Underscore中,有一个简单的功能:

_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]);
=> [1, 2, 3, 101, 10]