お世話になります。
JavaScriptでのオフジェクト配列の重複要素の削除に取り組んでいます。
Objectのkey項目は、
name subject score etc1 etc2 etc3であり、
これらのキー要素を持つObjectが配列型である想定です。
ここからname subject scoreが完全一致するものを排除し、新たな配列項目として取得したいと考えています。
ただしここで問題があり、重複を除き、新たなオブジェクト配列に加える際の条件として仮に上記の条件に一致するものがあったとしても、etc1 etc2 etc3のどれかに値が入ってる配列要素があれば(etc1~3のどれか1つでもnot nullのものがある)、そちらの配列要素を新たなオブジェクト配列にプッシュしたいです。
const inputObject = [
{
name: "氏名テスト",
subject: "国語",
score: "80",
etc1: null,
etc2: null,
etc3: null,
},
{
name: "氏名テスト",
subject: "国語",
score: "80",
etc1: null,
etc2: "1",
etc3: null,
}
]
である時、新たな配列にプッシュする要素としては、2つめの要素(インデックス番号は1)としたいです。
このロジックの実装法が分からず、ひとまず重複を排除するロジックのみ下記のように実装してみました。
JavaScript
1 var x; 2 var tmpObj = {}; 3 4 for(x = 0; x < inputObject.length; x++) { 5 tmpObj[inputObject[x]['name']+inputObject[x]['subject']+ 6 inputObject[x]['score']] = inputObject[x]; 7 } 8 9 var outputObject = []; 10 for(var key in tmpObj) { 11 outputObject.push(tmpObj[key]); 12 }
ここでetc1~3のうちいずれかでもnullでない項目があればそちらの配列要素をプッシュする・・・というのはどのような形で取り込めばいいでしょうか?
初歩的な質問で恐縮ですが、有識者の方、ご教示をよろしくお願いいたします。
