как в заметном месте найти и переместить элемент в начало коллекции - PullRequest
0 голосов
/ 20 ноября 2018

плохо знакомы с Rxjs.Я знаком с конвейером, фильтром, сортировкой, картой и т. Д., Но не смог решить эту проблему.Мне нужно найти элемент в моих наблюдаемых возвращаемых данных и переместить его наверх, прежде чем он отобразится.В этом примере Дарт Вейдер - это пункт 4, и я хочу найти и переместиться на 0-ю или первую позицию в наблюдаемом массиве / коллекции.https://stackblitz.com/edit/findandmakefirst

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018
import { People } from './sw-people.model';

interface Results {
  count: Number,
  next: String,
  previous: string,
  results: People[],
}

@Injectable()
export class SwPeopleService {
    people$ = this.http.get('https://swapi.co/api/people/')
      .map((res: Results) => {
         return res.results.sort((a: People, b: People) => {
           return a.name === "Darth Vader" ? -1 : b.name === "Darth Vader" ? 1 : 0;
         });
        });

    constructor(private http: HttpClient) {} 
}
0 голосов
/ 20 ноября 2018

Как это?

people$ = this.http.get('https://swapi.co/api/people/')
  .map((res:any) => {
    var _vader = res.results.splice(res.results.findIndex(x => x.name === 'Darth Vader'), 1);
    return [..._vader, ...res.results];
  });
...