У меня есть следующие JSON Файл: http://pastebin.com/1TguvZXcКак изменить трубку для удаления повторяющихся записей?
Дубликат 'тело' можно найти в массиве путем обхода через массив:
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
Остальные данные для меня бесполезны.
У меня есть следующие трубы:
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