How to merge the same value
本问题已经有最佳答案,请猛点这里访问。
我需要帮助。我想把这12,12,12,13,13,14,14,14,15,15合并成12,13,14,15。到目前为止,我有这个代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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-else上的数字合并到了现有的数字上。现在我的问题是我应该在哪里为我的组合再次放置下一个if语句。
尝试筛选属性。假设数组中有这些值
1 2 3 4 | arr=[1,1,1,2,3,4,5]; new_arr = arr.filter(function(item, pos) { return arr.indexOf(item) === pos; }); |
这个过滤器接受一个回调函数,并对数组的每个元素(如.map)调用它,最多接受三个参数:元素的值(来自数组)、索引和数组本身。
这背后的想法是,取一个元素,然后检查(那个元素)的索引是否等于元素的位置。
演练。
step 1: indexOf(1) = 0 and pos = 0, indexOf(1) === pos // true so the element is pushed in the new_arr
step 2: indexOf(1) = 0 and pos = 1, // condition false, so discard.
等等。。
允许和丢弃的属性可能来自duck类型
可以导入库下划线在下划线中,有一个简单的函数来执行此操作:
1 2 | _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); => [1, 2, 3, 101, 10] |