Javascript-合并具有唯一结果的二维数组

Javascript-合并具有唯一结果的二维数组,javascript,arrays,Javascript,Arrays,我有两个Javascript数组 var array1 = [ ["Tech & Digital", 124], ["Stationery", 100] ] var array2 = [ ["Gift Item", 125], ["Stationery", 100] ] 我想用唯一值合并这个2数组,如下所示

我有两个Javascript数组

var array1 = [
              ["Tech & Digital", 124],
              ["Stationery", 100]
             ]
var array2 = [
              ["Gift Item", 125],
              ["Stationery", 100]
             ]
我想用唯一值合并这个2数组,如下所示

            [
              ["Tech & Digital", 124],
              ["Stationery", 100],
              ["Gift Item", 125]
             ]

我尝试了
concat
函数,但它没有按预期工作。

是否使用嵌套数组来模拟保持顺序的对象?如果是这样,那么编写一个容器对象来为您处理排序

如果不是,则可以使用下划线或低破折号:

_.uniq(_.union(array1, array2), false, JSON.stringify)

自<代码>[1]!=[1] ,您必须手动比较它们<代码>JSON。stringify是一种(黑客的)方法。

你知道,我相信其他人可以做一些更有说服力的事情,但下面是我使用jquery的尝试

var array1 = [
              ["Tech & Digital", 124],
              ["Stationery", 100]
             ]
var array2 = [
              ["Gift Item", 125],
              ["Stationery", 100]
             ]
var obj = {}
jQuery.map(array1.concat(array2),function(i,v){return obj[i[0]] = i[1] })
array1 = jQuery.map(obj, function(j,w){
       return [].concat([[w,j]]);
    })
这是相同的,但针对非库解决方案进行了修改。ECMAScript 5之前的版本

var arr = array1.concat(array2), obj = {};
for(var i = 0; i < arr.length; i++){
    obj[arr[i][0]] = arr[i][1];
}
array1 = function() {
      var arr = [];
      for(key in obj){
       arr.push([[key,obj[key]]])
      }
      return arr;
}()

因为没有“内置”方法来删除重复项。你必须实现它,我们不能在没有下划线或低破折号的情况下实现吗?
[["Tech & Digital", 124], ["Stationery", 100], ["Gift Item", 125]]