2017-03-02 8 views
-3

私はネストされた配列(procdata)を有する:相互つのアレイを比較し、使用して新しいアレイに稀値をプッシュJS角度

[2017年2月14" 日、NULL、23.0、 "ドキュメント" を、 "T1632"、 "2 Bitewings"、290]]、[["2017-03-01"、null、10.0、 "Doc"、 "T1254"、 "Fluoride"、289]、[2017-03-01以下のように」、NULL、40.0、 "ドキュメント"、 "T1632"、 "4 Bitewings"、288]

と別の配列(paySplitdata):

[は[290]

コードは、私が試した:

var a = [], diff = []; 
for (var i = 0; i < procdata.length; i++) { 
    a[procdata[i][6]] = true; 
} 

for (var i = 0; i < paySplitdata.length; i++) { 
    if (a[paySplitdata[i]]) { 
     delete a[paySplitdata[i]]; 
    } else { 
     a[paySplitdata[i]] = true; 
    } 
} 

for (var k in a) { 
    diff.push(k); 
} 
alert(diff); 

私は(差分)の配列を取得しています:

[[289]、[288]]

しかし、インデックス[6]を次のようにフィルタリングした後、新しい配列が必要です:

[["2017-03-01"、null、10.0、 "Doc"、 "T1254"、 "フッ化物"、289]、
[["2017-03-01"、null、40.0、 "ドク"、 "T1632"、 "4Bitewings"、288]]

+0

あなたが使用しているNGのバージョン? –

+0

は、したがって=> [a、b]のような配列であり、[a [i]、b [i]]が返されるフラットな配列が必要です –

+7

質問のためにトピックをオフトピックとして閉じるよう投票しています努力の兆候は見られません。 – Rajesh

答えて

0

数が配列paySplitdataである場合は、探してArray#indexOfArray#filterを使用することができます。

結果は、paySplitdataの番号を含まない項目を含む配列です。

var procdata = [["2017-02-14", null, 23.0, "Doc", "T1632", "2 Bitewings", 290], ["2017-03-01", null, 10.0, "Doc", "T1254", "Fluoride", 289], ["2017-03-01", null, 40.0, "Doc", "T1632", "4 Bitewings", 288]], 
 
    paySplitdata = [290], 
 
    diff = procdata.filter(function (a) { 
 
     return paySplitdata.indexOf(a[6]) === -1; 
 
    }); 
 

 
console.log(diff);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

質問を理解してアップしてください。完璧な答えです.. !! –

関連する問題