2017-11-06 19 views
0

2つの配列を1つの配列キーと他の配列とkeyをマージして別の配列値だけを取得し、最後に1つの配列を作成します。私はここでいくつかのロジックを書いているが、私はちょうど最初の配列キーのプッシュを置いているが、他の配列の値は、最終的な配列にプッシュすることはできません。誰もがそれをどうやってできるのか知っているので、ここで私に教えてください。ここで私は配列で自分のコードを記載している。2つの配列をjavascriptを使ってマージするには?

これは私の最初の配列=>

var arr = ["fullName","username","biography","externalurl","followerCount","followingCount","medaiCount"]; 

これは私の他の配列=>

var FinalFilterArray = [ { fullName: 'love', 
        username: 'lo.ve632', 
        biography: '', 
        externalUrl: '', 
        followerCount: 13, 
        followingCount: 129, 
        mediaCount: 0 }, 
       { fullName: 'abc', 
        username: '@abc', 
        biography: '', 
        externalUrl: '', 
        followerCount: 289, 
        followingCount: 262, 
        mediaCount: 0 }]; 

これがされて私のロジック=>

var ExcelData = []; 
    for (var i = 0; i < FinalFilterArray.length; i++) { 
     console.log("f" + FinalFilterArray.length) 
     if (i == 0) { 
      ExcelData[i] = arr 
     } 
     else { 
      var key = []; 
      for (var j = 0; j < arr.length; j++) { 
       console.log("j " + arr[j]) if(FinalFilterArray[i] == arr[j]){key.push[FinalFilterArray[i].arr[j]]} 

      }      
      ExcelData[i] = [key] 
     } 
    } 

私の予想Oの\ pを=>

[[ 'fullName', 
'username', 
'biography', 
'externalUrl', 
'followerCount', 
'followingCount', 
'mediaCount' ], 
['love','lo.ve632','','','13','129','0'] , 
['abc','@abc','','','289','262','0']] 
+0

を使用し、私は連結を使用すると、それらをマージするには良い選択肢だと思います。あなたができることは、値をフェッチしてvarname.concat()を使うロジックを適用することです。詳細をマージする –

答えて

2
finalArr = [ arr , ...FinalFilterArray.map(item => arr.map(key => item[key])) ] 

あなたはこれまでES5ソリューションをしたい場合は、

finalArr = [arr].concat(FinalFilterArray.map(function(item){ 
    return arr.map(function(key) { 
     return item[key] 
    }) 
}) 
+0

正確にはES6の解決策です。 '...'演算子がES5に存在しません – Niladri

+1

ES5ソリューションが追加されました – Prasanna

+0

私はexcelファイルを生成し、この配列をExcelファイルに設定していますので、あなたの解決策を使用してください。 – Edit

関連する問題