我想对一个对象数组进行排序,排序方法中的项目通过一个函数使它们返回一个值,然后返回值高于某个数字的对象的项目。
我已经尝试过这个:
sortedObject(){
return this.arrayOfObjects.sort((a, b) =>
(this.formatValue(b) > 0.7) - (this.formatValue(a) > 0.7)
)
}
this.formatValue
获取一个项目,并通过对象属性的一系列计算返回 0 到 1 之间的值。我希望排序仅返回值高于 0.7 的项目并将它们放入在 sortedObject
计算属性中排序。值低于 0.7 的项目不会包含在 sortedObject
中。
最佳答案
这不仅仅是排序,您需要首先过滤 < 0.7 的项目,然后对其余的进行排序:
我首先只映射计算值,然后过滤它们,然后对它们进行排序:
sortedObject(){
return this.arrayOfObjects.map(a => this.formatValue(a))
.filter(a => a > 0.7)
.sort((a, b) => b - a)
}
编辑
sortedObject(){
return this.arrayOfObjects.filter(a => this.formatValue(a) > 0.7)
.sort(
(a, b) =>
this.formatValue(b) - this.formatValue(a)
)
}
关于javascript - 如何按值排序并仅返回高于特定值的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54198487/