Siema, mam tablice obiektów
const users = [
{
name: 'Jan',
id: 422,
},
{
name: 'Jan2',
id: 322,
},
{
name: 'Jan3',
id: 233,
}
]
Chciałbym aby Jan2 był w nowej tablicy jako pierwszy item
Siema, mam tablice obiektów
const users = [
{
name: 'Jan',
id: 422,
},
{
name: 'Jan2',
id: 322,
},
{
name: 'Jan3',
id: 233,
}
]
Chciałbym aby Jan2 był w nowej tablicy jako pierwszy item
W sensie const users2 = [users[1], users[0], users[2]]
?
Tak, ale potrzebowałbym czegoś bardziej flexible bo końcowo poleci to na tablice z 500 rekordami
A wiesz na której pozycji masz Jan2
? Zawsze jest na drugiej i wystarczy zamienić dwie pierwsze pozycje czy trzeba go znaleźć ?
Jan2 może zmieniać swoją pozycje, znam tylko klucz name: 'Jan2' i wg tego muszę go mieć na 1 miejscu
Polecam zacząć od Array.prototype.findIndex().
Może users.findIndex( e => e.name == "Jan2")
Coś takiego np.:
const finalUsers = users.slice(); // kopia tablicy
const index = finalUsers.findIndex(e => e.name == "Jan2");
if (index > -1) { // jeśli znalazł
finalUsers.unshift(finalUsers.splice(index, 1)[0]); // metody splice i unshift, polecam obczaić na MDN
}
wtedy kopiuje ci tablice, szuka indeksu (używając findIndex, jak @KamilAdam zasugerował) i najpierw wycina dany element z tablicy (splice), a potem wrzuca go na początek (unshift).