你这个哪还是排序啊……
var arr1=[5,2,1,4];
var json=[[a,1],[b,4]];
var arr = new Array();
for(var i in arr1)
{
        for(var a in json)
        {
              if(i==a[1])
              {
                   arr.push(a);break;
              }
        }
}

解决方案 »

  1.   

    接上面代码,你唯一可以提高效率的,就是将json按第二个字段排序,然后可以根据i快速定位,减少循环,当然这只是思路
      

  2.   

    这排序过程如果写不好的话,可能效率更低吧,可能还不如直接遍历比较来的快呢这个看具体的,假如第二个数字就是1,2,3,4,5这种完全连续的数字,那效率能有很大提高
    当然如果写不好,效率低还是好的,说不定bug漫天飞
      

  3.   


       var nums =  [["a", 1], ["c", 2], ["e", 5]];
          var sortNums = [2, 5, 1];
          var res = new Array(nums.length);
          for (var i = 0; i < nums.length; i++) {
              var item = nums[i];
              var key = item[1];
              for (var j = 0; j < sortNums.length; j++) {
                  if (sortNums[j] === key) {
                      res[j] = item;
                  }
              }
          }
          alert(res);
      

  4.   

    关键是类库里没有给二维数组提供排序的方法
    如果是list之类的就不用过多纠结了自己写排序,我估计很多人也只知道个冒泡吧
      

  5.   


    var arr1 = [5, 2, 1, 4];
            var json = [["a", 4], ["b", 1],["c",2]];
            var hash = new Array();
            var res = new Array();
            for (var item in json) {
                hash[json[item][1]] = json[item];
            }
            for (var item in arr1)
            {
                var key = arr1[item];
                if (hash[key]) {
                    res.push(hash[key]);
                }
            }
            alert(res);借助hash数据结构可以构造o(n)时间复杂度的排序算法推荐