Так что мне нужно отсортировать этот массив в угловых 7, я получаю это от API:
"Products": [
{
"ProductCode": "MC30180",
"Description": "Description_1",
"NationalCode": "N.C. 0965",
"PendingQuantity": 25,
"toBeScanned": true
},{
"ProductCode": "MC30180",
"Description": "Description_1",
"NationalCode": "N.C. 0965",
"PendingQuantity": 20,
"toBeScanned": false
},
{
"ProductCode": "Name_2",
"Description": "Description_2",
"NationalCode": "N.C. 0382",
"PendingQuantity": -1,
"toBeScanned": false
},
{
"ProductCode": "Name_3",
"Description": "Description_3",
"NationalCode": "N.C. 8913",
"PendingQuantity": 0,
"toBeScanned": false
},
{
"ProductCode": "Name_3",
"Description": "Description_3",
"NationalCode": "N.C. 8913",
"PendingQuantity": 30,
"toBeScanned": false
}
]
Итак, мой код:
// tslint:disable-next-line:max-line-length
this.data.Products.sort((b, a) => { if (a.PendingQuantity < 0) { return 1; } if (a.PendingQuantity < 0) {return -1; } if (b.PendingQuantity < 0 ) { return 1; } return b.PendingQuantity - a.PendingQuantity });
Но мне нужно отсортировать по PendingQuantity
и toBeScanned
, но
до этого
- мне нужно отсортировать по отрицательному
PendingQuantity
(отрицательное toBeScanned
является истинным или ложным.
- Мне нужно отсортировать по состоянию
toBeScanned
, до истины и после
ложь, все это увеличилось PendingQuantity
.
- каждые
PendingQuantity = 0
должны быть показаны в конце массива
список.
Надеюсь, мне ясно.
Так что результат я бы:
"Products": [
{
"ProductCode": "MC30180",
"Description": "Description_1",
"NationalCode": "N.C. 0965",
"PendingQuantity": -1,
"toBeScanned": false
},{
"ProductCode": "MC30180",
"Description": "Description_1",
"NationalCode": "N.C. 0965",
"PendingQuantity": 25,
"toBeScanned": true
},
{
"ProductCode": "Name_2",
"Description": "Description_2",
"NationalCode": "N.C. 0382",
"PendingQuantity": 20,
"toBeScanned": false
},
{
"ProductCode": "Name_3",
"Description": "Description_3",
"NationalCode": "N.C. 8913",
"PendingQuantity": 30,
"toBeScanned": false
},
{
"ProductCode": "Name_3",
"Description": "Description_3",
"NationalCode": "N.C. 8913",
"PendingQuantity": 0,
"toBeScanned": false
}
]