var Arr1 = [1,3,4,5,6];
var Arr2 = [4,5,6,8,9,10];
我試圖做合併這兩個陣列和輸出來,是[1,3,4,5,6,4,5,6]
合併兩個陣列,存儲唯一的元素,並在jQuery的
我用$.merge(Arr1, Arr2);
這塊合併它們。使用alert我可以看到上面的合併數組。現在
我的問題是我怎麼能得到以下的輸出: [1,3,4,5,6,8,9,10]
即元素應該是唯一的,以及在我剛纔提到的相同的方式進行排序。
請幫忙。
var Arr1 = [1,3,4,5,6];
var Arr2 = [4,5,6,8,9,10];
我試圖做合併這兩個陣列和輸出來,是[1,3,4,5,6,4,5,6]
合併兩個陣列,存儲唯一的元素,並在jQuery的
我用$.merge(Arr1, Arr2);
這塊合併它們。使用alert我可以看到上面的合併數組。現在
我的問題是我怎麼能得到以下的輸出: [1,3,4,5,6,8,9,10]
即元素應該是唯一的,以及在我剛纔提到的相同的方式進行排序。
請幫忙。
您可以使用Array.prototype.sort()進行真正的數字排序,並使用Array.prototype.filter()來僅返回唯一元素。
你可以把它包裝成一個類似的幫手:
var concatArraysUniqueWithSort = function (thisArray, otherArray) {
var newArray = thisArray.concat(otherArray).sort(function (a, b) {
return a > b ? 1 : a < b ? -1 : 0;
});
return newArray.filter(function (item, index) {
return newArray.indexOf(item) === index;
});
};
注意,自定義排序功能,只有數字元素的作品,所以如果你想使用它的字符串或混合使用數字的字符串你有將其更新爲課程以考慮這些情況,但其餘情況不應有太大變化。
使用這樣的:
var arr1 = [1, 3, 4, 5, 6];
var arr2 = [4, 5, 6, 8, 9, 10];
var arrAll = concatArraysUniqueWithSort(arr1, arr2);
arrAll
現在將[1, 3, 4, 5, 6, 8, 9, 10]
DEMO - 串聯2列,排序和刪除重複
有許多方法我確信這樣做。這只是我能想到的最簡潔。
var arr3 = arr1.slice(), // clone arr1 so no side-effects
i; // var i so it 's not global
for (i = 0; i < arr2.length; ++i) // loop over arr2
if (arr1.indexOf(arr2[i]) === -1) // see if item from arr2 is in arr1 or not
arr3.push(arr2[i]); // it's not, add it to arr3
arr3.sort(function (a, b) {return a - b;});
arr3; // [1, 3, 4, 5, 6, 8, 9, 10]
使用underscore.js工作:
_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]).sort(function(a,b){return a-b});
=> [1, 2, 3, 10, 101]
這個例子是直接取自underscore.js,一種流行的JS庫,補充jQuery的
a = [1, 2, 3]
b = [2, 3, 4]
$.unique($.merge(a, b)).sort(function(a,b){return a-b}); -> [1, 2, 3, 4]
更新: 這是一個壞主意,因爲'唯一'功能不適用於數字或字符串。 但是,如果您必須使用新的比較器,那麼需要通知排序函數,因爲默認情況下它按字典順序進行排序。
合併兩個或多個陣列+刪除duplicities +排序()
jQuery.unique([].concat.apply([],[[1,2,3,4],[1,2,3,4,5,6],[3,4,5,6,7,8]])).sort();
我做了如下,其中T1和T2是我的兩個表。
第一條命令將表t2的值賦給t1。第二個命令從表中刪除重複的值。
$.merge(t1, t2);
$.unique(t1);
你能解釋一下嗎?前2行我還沒有明白...等待 – Monibrata
@Monibrata添加評論 –
感謝您的解釋...但使用此代碼我有輸出像[1,3,4,4,5,5,6,6 ,8,9,10] – Monibrata