배열의 객체 정렬

2779 단어
수요 장면: 다음 형식의 데이터를 수신합니다
{
    "data":{
        "items": [
            { "beRecommendName":"John2" , "beRecommendCityName":" " ,"recommendTimeString":"2017.08.22 15:00","rewardPrice":"100","recStatus":"1","id":"2"},
            { "beRecommendName":"John3" , "beRecommendCityName":" " ,"recommendTimeString":"2017.08.22 15:00","rewardPrice":"200","recStatus":"2"},
            { "beRecommendName":"John4" , "beRecommendCityName":" " ,"recommendTimeString":"2017.08.22 15:00","rewardPrice":"100","recStatus":"3"},
            { "beRecommendName":"John5" , "beRecommendCityName":" " ,"recommendTimeString":"2017.08.22 15:00","rewardPrice":"300","recStatus":"4"}
        ]
    }
}

그 중에서recStatus는 사용자의 상태가 신청 대기, 이미 수령, 승인 중, 승인 실패라는 네 가지 상태를 판단하는 데 사용된다. 사용자가 조작을 집행한 후 상태가 변경된 후 서로 다른 상태의 디스플레이 값은 대기 신청에 따라 수령하고 승인 중, 승인 실패의 순서에 따라 배열해야 한다.

    var items = [
        {
            "beRecommendName": "John1",
            "beRecommendCityName": " ",
            "recommendTimeString": "2017.08.22 15:00",
            "rewardPrice": "100",
            "recStatus": "1",
            "id": "1"
        },
        {
            "beRecommendName": "John2",
            "beRecommendCityName": " ",
            "recommendTimeString": "2017.08.22 15:00",
            "rewardPrice": "100",
            "recStatus": "1",
            "id": "2"
        },
        {
            "beRecommendName": "John3",
            "beRecommendCityName": " ",
            "recommendTimeString": "2017.08.22 15:00",
            "rewardPrice": "200",
            "recStatus": "2"
        },
        {
            "beRecommendName": "John4",
            "beRecommendCityName": " ",
            "recommendTimeString": "2017.08.22 15:00",
            "rewardPrice": "100",
            "recStatus": "3"
        },
        {
            "beRecommendName": "John5",
            "beRecommendCityName": " ",
            "recommendTimeString": "2017.08.22 15:00",
            "rewardPrice": "300",
            "recStatus": "4"
        }
    ]

    var info = items.sort(function (recStatus) {
        return function (a, b) {
            var a = a[recStatus],
                b = b[recStatus];

            return a - b;
        }
    })
    console.log(info);
    


여기서 주의해야 할 것은 데이터에 대해 정렬하는 가장 좋은 방법은 백엔드에서 정렬하는 것이다. 앞부분은 전시만 하는 것이다. 왜냐하면 앞부분은 백엔드 정렬보다 성능을 더 소모하기 때문이다.

좋은 웹페이지 즐겨찾기