我从服务器收到一个对象数组,但它们不是我想要将它们吐出来的顺序。不幸的是,我想要的顺序也不是按字母顺序排列的。我想知道重新排序数组元素的最佳方法是什么。此外,如果有办法,我可以利用array.sort
。我现在如何工作:
function arraySort(array) {
let orderedArray = new Array();
array.map(item => (
item.key === 'Person' ? orderedArray[0] = item : null,
item.key === 'Place' ? orderedArray[1] = item : null,
item.key === 'Thing' ? orderedArray[2] = item : null
));
return orderedArray;
}
答案 0 :(得分:2)
你走了。
var order = ['Person', 'Place', 'Thing'];
var a = [
{ key: 'Place' },
{ key: 'Thing' },
{ key: 'Place' },
{ key: 'Person' },
{ key: 'Place' },
{ key: 'Thing' },
{ key: 'Person' }
];
var b = a.sort(function(a,b) {
return order.indexOf(a.key) - order.indexOf(b.key);
});
console.log(b);