Я получаю array с базы данных (в нисходящей команде) и крашу их в front в таблице и в графике, как он появляется в изображении:
но в части графика я хочу упорядочи это восходящей формы и я делаю следующее:
export class PruebasComponent implements OnInit {
data: any[];
dataSource: PeriodicElement[] = [];
lineChartData: ChartDataSets[];
.......
ngOnInit() {
this.loading = true;
this.datos.getDesktopLimit().subscribe(
res => {
this.loading = false;
this.data = [res];
this.dataSource = this.data[0]; //aqui almaceno el arreglo y lo paso al componente html
this.barChartData = true;
this.getFilter(this.dataSource); // ejecuto la funcion getFilter()
}
)
}
с sort я это упорядочиваю восходящей формы, чтобы это перемещать в график
getFilter(data) {
console.log(data);
data.sort((a, b) => a.id - b.id); //ordenar de forma ascendente para la grafica
for (let entry of data) {
this.date.push(moment(entry.created).format('DD-MM-YYYY HH:mm'))
this.time.push(entry.total_load_time * 0.001)
}
this.lineChartData = [{ data: this.time, label: 'Time Render' }];
this.lineChartLabels = this.date;
this.loading = false
}
Действительно он приказывает это мне, но таблица также рукоположена в восходящую форму
У тебя есть проблема ссылки, в javascript (TS tambiГ©n), все объекты проходят по ссылке. Ты должен отделять два объекта: таблица и grГЎfica.
Тогда:
let dataOriginalDB:any[] = []; // Tu arreglo de objetos
let dataParaTabla:any[] = JSON.parse(JSON.stringify(dataOriginalDB)) //deep Copy
let dataParaGrafica:any[] = JSON.parse(JSON.stringify(dataOriginalDB)) //deep Copy
Сейчас, когда он сделает sort, не идут менять другие тебе automГЎtico, идея состоит, в том, чтобы переместив это в string и потом в JSON он снова потерял ссылку.
делать это с JSON.parse - самое безопасное, зависит от всей глубины имейте твои объекты (объекты внутри объектов).
Других способов делать копии objectos и предотвращать ссылку - с Object.assign()
и оператор spread ...
let dataOriginalDB:any[] = []; // Tu arreglo de objetos
let dataParaTabla:any[] = { ... dataOriginalDB } //deep Copy con spread
let dataParaGrafica:any[] = [];
dataParaGrafica = Object.assign(dataParaGrafica , dataOriginalDB );
Эти Гєltimos тратят меньше ресурсов, так как mГ©todo JSON.parse требует немного больше в CPU, ты будешь замечать это, если ты будешь конвертировать договоренности большой (> 30k реестры).
Надеялся, что он подает тебя, привет!