第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實(shí)現(xiàn)一個mergeArray函數(shù)

實(shí)現(xiàn)一個mergeArray函數(shù)

紅顏莎娜 2018-09-12 09:27:56
對兩個已經(jīng)排好序的數(shù)組進(jìn)行排序,從小到大。數(shù)組里面是數(shù)字且均為整數(shù),在[0,100000]之間,數(shù)組長度不超過10000。輸入數(shù)據(jù)有三行,第一行兩個數(shù)字表示每個數(shù)組數(shù)字個數(shù),后面兩行分別表示兩個數(shù)組5,39,6,5,3,17,4,2輸出1,2,3,4,5,6,7,9
查看完整描述

1 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個贊

應(yīng)該符合你的要求: 支持任意多個數(shù)組進(jìn)行合并

// 數(shù)組合并

function mergeArray(){

    if (arguments.length === 0) {

      throw new Error('至少一個參數(shù)!');

    }

    if (arguments.length === 1) {

      return arguments[0];

    }

    

    /*

      * 這邊采取的累積合并

      * 第一次循環(huán) args1 , args2 ===> mergeArr

      * 第二次循環(huán) mergeArr , args3 === > mergeArr

      * 第三次循環(huán) mergeArr , args4 ==> mergeArr 

      ....

      * 最終返回 排序后的 mergeArr


    */

    var superposition = false;

    for (var i = 0; i < arguments.length; ++i)

      {

           if (i + 1 < arguments.length) { 

               if (!superposition) {

                 superposition = arguments[i];     

                 filterArr(superposition);

               }


               var two = arguments[i + 1];

               filterArr(two);

               var copyTwo = copyArr(two);

               var waitMerge = [];

               for (var n = 0; n < superposition.length; ++n)

                {

                  var val1 = superposition[n];

                  var isExists = false;

                  for (var a = 0; a < two.length; ++a)

                    {

                      var val2 = two[a];

                      if (val1 === val2) {

                        isExists = true;

                        break;

                      } else {

                        isExists = false;

                      }

                    }

                   if (!isExists) {

                     waitMerge.push(val1);

                   }

                }


               for (var m = 0; m < waitMerge.length; ++m)

                {

                  copyTwo.push(waitMerge[m]);

                }

               superposition = copyTwo;

           }

        }

  superposition.sort(function(a , b){

    return a - b;

  });  

  return superposition;

}


// 數(shù)組復(fù)制(創(chuàng)建副本)

function copyArr(arr){

  var newArr = [];

  for (var i = 0; i < arr.length; ++i)

   {

     newArr[i] = arr[i];

   }

  return newArr;

}


// 數(shù)組過濾(影響原數(shù)組)

function filterArr(arr){

   for (var i = 0 ; i < arr.length; ++i)

    {

       var idx = false;

       for (var n = i + 1; n < arr.length; ++n)

        {

          if (arr[n] === arr[i]) {

             idx = n;

             break;

          }

        }

       if (typeof idx === 'number') {

          arr.splice(idx , 1);

          i--;

       }

    }

}


console.log(mergeArray([0 , 1 ,2 , 3 , 4] , [4 , 5 , 8 , 0 , 1] , [10 , 100 , 6]));



查看完整回答
反對 回復(fù) 2018-10-19
  • 1 回答
  • 0 關(guān)注
  • 594 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號