【发布时间】:2019-08-13 04:39:08
【问题描述】:
我想知道如何使用javascript根据顺序过滤和获取对象
我有一个obj,如下所示,应该根据 order 和 concat 进行过滤。
`obj` with `no error key && amt > min` should display at the top in sorted manner by amt.
`obj` with `amt<min` should display next
`obj` with `error` should display last
var output = orderData(obj);
function orderData(obj){
var minData = obj.filter(e=>e.amt<e.min);
var errData = obj.filter(e=>e.hasOwnProperty("error"));
var validData = obj.filter(e=>!e.hasOwnProperty("min") && !e.hasOwnProperty("error"));
var result = validData.concat(errData).concat(minData);
return result;
}
var obj =[{
"id": "trans",
"amt": 1000
},{
"id": "fund",
"amt": 500
},{
"id": "inst",
"amt": 2000,
"error": "invalid"
},{
"id": "wf",
"amt": 600,
"min": 2000
},{
"id": "sf",
"amt": 500,
"min": "250"
}]
预期输出:
[{
"id": "fund",
"amt": 500
},{
"id": "sf",
"amt": 500,
"min": "250"
},{
"id": "trans",
"amt": 1000
},{
"id": "wf",
"amt": 600,
"min": 2000
},{
"id": "inst",
"amt": 2000,
"error": "invalid"
}]
【问题讨论】:
-
按什么 id 或 amt 或错误排序?? @Senthil
-
@UdalPal 感谢您的回复,已经提到条件 ```
obj和no error key && amt > min应按 amt 排序方式显示在顶部。obj和amt<min应该显示下一个obj和error应该显示最后一个``` -
为什么
sf排在第二位no error key && amt > min should display at the top in sorted manner by amt? -
@User863 是的...
-
amt == min呢?
标签: javascript arrays sorting object