javascript – 合并两个数组,存储唯一元素,并在jQuery中进行排序

前端之家收集整理的这篇文章主要介绍了javascript – 合并两个数组,存储唯一元素,并在jQuery中进行排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. var Arr1 = [1,3,4,5,6];
  2.  
  3. var Arr2 = [4,6,8,9,10];

我试图合并这两个数组,输出来的是[1,6]

我使用过$.merge(Arr1,Arr2);这件作品合并他们.使用alert我可以看到如上所示的合并数组.

现在我的问题是如何获得以下输出
[1,10]

即元素应该是唯一的,并且以我提到的相同方式排序.

请帮忙.

解决方法

您可以使用 Array.prototype.sort()进行实数数字排序,并使用 Array.prototype.filter()仅返回唯一元素.

你可以将它包装成一个类似于这样的帮助器:

  1. var concatArraysUniqueWithSort = function (thisArray,otherArray) {
  2. var newArray = thisArray.concat(otherArray).sort(function (a,b) {
  3. return a > b ? 1 : a < b ? -1 : 0;
  4. });
  5.  
  6. return newArray.filter(function (item,index) {
  7. return newArray.indexOf(item) === index;
  8. });
  9. };

请注意,自定义排序功能仅适用于数字元素,因此,如果您想将其用于字符串或将字符串与数字混合,则必须更新它,以便将这些方案考虑在内,尽管其余部分不应发生太大变化.

像这样用它:

  1. var arr1 = [1,6];
  2. var arr2 = [4,10];
  3.  
  4. var arrAll = concatArraysUniqueWithSort(arr1,arr2);

arrAll现在将是[1,10]

DEMO – 连接2个数组,排序和删除重复项

我确信有很多方法可以做到这一点.这只是我能想到的最简洁.

猜你在找的jQuery相关文章