J'ai donc quelques données qui reviennent d'une demande qui ressemble à ceci: mais bien sûr avec beaucoup plus d'articles.
Donc, je cherche à trier ces éléments sur "priorité" afin que l'objet avec 4 vient en premier dans la matrice.
N'importe quelle idée comment faire cela dans JavaScript? P> P>
4 Réponses :
var f =[{ subject: 'something', email: 'someone@gmail.com', name: 'Bert', priority: '2' }, { subject: 'something else', email: 'someoneelse@gmail.com', name: 'Betty', priority: '4' }, { subject: 'another thing', email: 'anotherone@gmail.com', name: 'Joanne', priority: '1' }]; f.sort((a,b) => +b.priority - +a.priority) console.log(f)
Utiliser p> Trier CODE> & Convertir la valeur de
Priorité code> à partir de chaîne au numéro en utilisant
parseint code>.
let data = [{
subject: 'something',
email: 'someone@gmail.com',
name: 'Bert',
priority: '2'
},
{
subject: 'something else',
email: 'someoneelse@gmail.com',
name: 'Betty',
priority: '4'
},
{
subject: 'another thing',
email: 'anotherone@gmail.com',
name: 'Joanne',
priority: '1'
}
];
let sortedDt = data.sort(function(a, b) {
return parseInt(b.priority, 10) - parseInt(a.priority, 10)
});
console.log(sortedDt)
cela marche. Savez-vous peut-être qu'elles appliquer un filtre secondaire?
Dans JavaScript, il existe une méthode appelée Donc, dans notre cas, nous devons le trier dans l'ordre décroissant. I.E Les objets avec moins de priorité doivent venir en haut. Pour cela, nous devons retourner un nombre inférieur à 0 0. Ce qui peut être fait si nous soustrayons la priorité de p> .sort () code> dans la matrice pouvant être utilisée pour le tri. C'est comme ça que ça marche.
B code> par priorité de
A code>. P> dans le code: p>
const items = [{
subject: 'something',
email: 'someone@gmail.com',
name: 'Bert',
priority: '2'
},
{
subject: 'something else',
email: 'someoneelse@gmail.com',
name: 'Betty',
priority: '4'
},
{
subject: 'another thing',
email: 'anotherone@gmail.com',
name: 'Joanne',
priority: '1'
}];
const sorted = items.sort((a,b) => b.priority - a.priority);
console.log(sorted);
J'ai écrit une fonction générique pour effectuer le tri par un nom de propriété ainsi que la fonctionnalité d'ordre croissant et décroissant.
function sortDataByPropName(data, property, order) { if(order === 'asc'){ data.sort((a, b) => a[property] - b[property]) } else { data.sort((a, b) => b[property] - a[property]) } return data; }
... et nous avons besoin de plus de réponses sur
Trier () CODE>, alors, s'il vous plaît, joindre
... et l'Oscar va à l'orateur le plus long enroule, postant sa solution identique 8 minutes après la première réponse
Combien d'effort de recherche est attendu des utilisateurs de dépassement de pile?