在Javascript中以自定义顺序放置数组元素的最佳方法

时间:2016-08-11 21:00:15

标签: javascript arrays sorting

我从服务器收到一个对象数组,但它们不是我想要将它们吐出来的顺序。不幸的是,我想要的顺序也不是按字母顺序排列的。我想知道重新排序数组元素的最佳方法是什么。此外,如果有办法,我可以利用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;
}

1 个答案:

答案 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);