I以下のJSONファイルがあります。つまりパイプを修正して重複したエントリを削除するにはどうすればよいですか?
models[x].years[y].styles[z].submodel.body
重複の体は、 "配列を横断して配列で見つけることができ
models[0].years[0].styles[0].submodel.body
をすべき重複を確認する:
models[0].years[0].styles[1].submodel.body
models[0].years[0].styles[2].submodel.body
models[0].years[0].styles[n].submodel.body
残りのデータは私には役に立たない。
I持って、次のパイプ:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filterByCategory'
})
export class FilterByCategoryPipe implements PipeTransform {
transform(input: any , search: string): any[] {
if (input === undefined || input.length === 0) {
return input;
}
const filteredArr: Array<any> = JSON.parse(JSON.stringify(input));
for (const model of filteredArr) {
for (const year of model.years) {
year.styles = year.styles.filter(style => {
return style.submodel.body === search;
});
}
}
return filteredArr;
}
}
がどのように私は私の.filter機能に追加された「テスト」を追加します「submodel.body」の値は、スタイル配列のいずれかに存在するかどうかをチェックしますか?
あなたは '' Array' indexOf'または 'includes'方法を利用することができます。 'includes'のブラウザ互換性を確認してください。 – Agalo
JavaScriptの新機能です。' year.styles = year.styles.filter(style => { returnの結果をフィルタリングするために、このメソッドをどこに置くかを詳しく説明できます。 style.submodel.body === search; }); '? – Moshe
私は、 'styles'を格納するための新しい配列を作成し、作成された配列の中にスタイルの存在を確認することをお勧めします。 – Agalo