包含根据键的对象排序的javascript列表

时间:2016-11-30 10:48:58

标签: javascript

我想根据密钥

订购包含对象的javascript列表

var a = [{order: 1, item: 'shoes'}, {order: 3, item: 'jeans'}, {order: 2, item: 'shirt'}, {order: 1, item: 'coat'}]

我希望根据orderlowerupper订购,例如:

var b = a.filter(data => data.order) //在这里查看一下

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您需要按属性排序,以便您可以使用函数样式来调整键,并返回Array.prototype.sort可以使用的函数。

var clothes = [
  { order: 1, item: 'shoes' }, 
  { order: 3, item: 'jeans' }, 
  { order: 2, item: 'shirt' }, 
  { order: 1, item: 'coat' }
]

const sortBy = key => (a, b) => a[key] - b[key]

console.log(
  clothes.sort(sortBy('order'))
)
<script src="http://codepen.io/synthet1c/pen/WrQapG.js"></script>

答案 1 :(得分:-2)

如果您使用的是lodash,则可以执行(docs

_.sortBy(list, el => el.order);

如果你不是(我相信你应该),你可以查看他们的提示源代码;)