第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

用Javascript排序JSON對(duì)象

用Javascript排序JSON對(duì)象

ibeautiful 2019-10-29 13:07:26
我一直在尋找排序這樣的JSON對(duì)象的時(shí)間{"results": [  {    "layerId": 5,    "layerName": "Pharmaceutical Entities",    "attributes": {      "OBJECTID": "35",      "FACILITYTYPE": "Pharmacy",      "FACILITYSUBTYPE": "24 Hr Pharmacy",      "COMMERCIALNAME_E": "SADD MAARAB PHARMACY",      },    "geometryType": "esriGeometryPoint",   },  {    "layerId": 5,    "layerName": "Pharmaceutical Entities",    "attributes": {      "OBJECTID": "1",      "FACILITYTYPE": "Pharmacy",      "FACILITYSUBTYPE": "24 Hr Pharmacy",      "COMMERCIALNAME_E": "GAYATHY HOSPITAL  PHARMACY",    },    "geometryType": "esriGeometryPoint",  },     {    "layerId": 5,    "layerName": "Pharmaceutical Entities",    "attributes": {      "OBJECTID": "255",      "FACILITYTYPE": "Pharmacy",      "FACILITYSUBTYPE": "24 Hr Pharmacy",      "COMMERCIALNAME_E": "AL DEWAN PHARMACY",      },    "geometryType": "esriGeometryPoint",   }]}按“ COMMERCIALNAME_E”的字母順序獲取{"results": [   {    "layerId": 5,    "layerName": "Pharmaceutical Entities",    "attributes": {      "OBJECTID": "255",      "FACILITYTYPE": "Pharmacy",      "FACILITYSUBTYPE": "24 Hr Pharmacy",      "COMMERCIALNAME_E": "AL DEWAN PHARMACY",      },    "geometryType": "esriGeometryPoint",   },  {    "layerId": 5,    "layerName": "Pharmaceutical Entities",    "attributes": {      "OBJECTID": "1",      "FACILITYTYPE": "Pharmacy",      "FACILITYSUBTYPE": "24 Hr Pharmacy",      "COMMERCIALNAME_E": "GAYATHY HOSPITAL  PHARMACY",       },    "geometryType": "esriGeometryPoint",   },   {    "layerId": 5,    "layerName": "Pharmaceutical Entities",    "attributes": {      "OBJECTID": "35",      "FACILITYTYPE": "Pharmacy",      "FACILITYSUBTYPE": "24 Hr Pharmacy",      "COMMERCIALNAME_E": "SADD MAARAB PHARMACY",      },    "geometryType": "esriGeometryPoint",   }]}我找不到任何可以做到這一點(diǎn)的代碼。誰能給我些幫助嗎?
查看完整描述

3 回答

?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊

function sortJsonArrayByProperty(objArray, prop, direction){

    if (arguments.length<2) throw new Error("sortJsonArrayByProp requires 2 arguments");

    var direct = arguments.length>2 ? arguments[2] : 1; //Default to ascending


    if (objArray && objArray.constructor===Array){

        var propPath = (prop.constructor===Array) ? prop : prop.split(".");

        objArray.sort(function(a,b){

            for (var p in propPath){

                if (a[propPath[p]] && b[propPath[p]]){

                    a = a[propPath[p]];

                    b = b[propPath[p]];

                }

            }

            // convert numeric strings to integers

            a = a.match(/^\d+$/) ? +a : a;

            b = b.match(/^\d+$/) ? +b : b;

            return ( (a < b) ? -1*direct : ((a > b) ? 1*direct : 0) );

        });

    }

}


sortJsonArrayByProperty(results, 'attributes.OBJECTID');

sortJsonArrayByProperty(results, 'attributes.OBJECTID', -1);

更新:請(qǐng)勿更改


function sortByProperty(objArray, prop, direction){

    if (arguments.length<2) throw new Error("ARRAY, AND OBJECT PROPERTY MINIMUM ARGUMENTS, OPTIONAL DIRECTION");

    if (!Array.isArray(objArray)) throw new Error("FIRST ARGUMENT NOT AN ARRAY");

    const clone = objArray.slice(0);

    const direct = arguments.length>2 ? arguments[2] : 1; //Default to ascending

    const propPath = (prop.constructor===Array) ? prop : prop.split(".");

    clone.sort(function(a,b){

        for (let p in propPath){

                if (a[propPath[p]] && b[propPath[p]]){

                    a = a[propPath[p]];

                    b = b[propPath[p]];

                }

        }

        // convert numeric strings to integers

        a = a.match(/^\d+$/) ? +a : a;

        b = b.match(/^\d+$/) ? +b : b;

        return ( (a < b) ? -1*direct : ((a > b) ? 1*direct : 0) );

    });

    return clone;

}


const resultsByObjectId = sortByProperty(results, 'attributes.OBJECTID');

const resultsByObjectIdDescending = sortByProperty(results, 'attributes.OBJECTID', -1);


查看完整回答
反對(duì) 回復(fù) 2019-10-29
?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

首先提取JSON編碼的數(shù)據(jù):


var data = eval(yourJSONString);

var results = data['results'];

然后使用自定義(用戶)函數(shù)進(jìn)行排序:


results.sort(function(a,b){

    //return a.attributes.OBJECTID - b.attributes.OBJECTID;

    if(a.attributes.OBJECTID == b.attributes.OBJECTID)

        return 0;

    if(a.attributes.OBJECTID < b.attributes.OBJECTID)

        return -1;

    if(a.attributes.OBJECTID > b.attributes.OBJECTID)

        return 1;

});

我假設(shè)您想按排序OBJECTID,但是您可以將其更改為按任何排序。


查看完整回答
反對(duì) 回復(fù) 2019-10-29
?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以通過提供自定義比較功能作為的參數(shù),對(duì)任何東西的有序數(shù)組進(jìn)行排序Array.Sort()。


var myObject = /* json object from string */ ;


myObject.results.sort(function (a, b) {


    // a and b will be two instances of your object from your list


    // possible return values

    var a1st = -1; // negative value means left item should appear first

    var b1st =  1; // positive value means right item should appear first

    var equal = 0; // zero means objects are equal


    // compare your object's property values and determine their order

    if (b.attributes.COMMERCIALNAME_E < a.attributes.COMMERCIALNAME_E) {

        return b1st;

    }

    else if (a.attributes.COMMERCIALNAME_E < b.attributes.COMMERCIALNAME_E) {

        return a1st;

    }

    else {

        return equal;

    }

});


查看完整回答
反對(duì) 回復(fù) 2019-10-29
  • 3 回答
  • 0 關(guān)注
  • 346 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)