在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ JS將數(shù)組中的數(shù)據(jù)按一定順序輸出

JS將數(shù)組中的數(shù)據(jù)按一定順序輸出

從ajax拿到的數(shù)據(jù)是這樣的:

[
    {'appType':'D201005' , 'appName':'1131xxxx'},
    {'appType':'1030001' , 'appName':'133XXXX9527'},
    {'appType':'0201008' , 'appName':'195485233'},
    {'appType':'1030001' , 'appName':'78321245'},
    {'appType':'1030001' , 'appName':'25481166'},
    {'appType':'10300361' , 'appName':'371203XXXX0057667X'},
    {'appType':'1030001' , 'appName':'789132154'},
]

例如我想將身份證號(hào)最先在頁面展示出來,其次是手機(jī)號(hào),微信號(hào),微信ID。
想寫一個(gè)算法,因?yàn)?,每次拿出來的?shù)據(jù)不固定多少,有時(shí)候少一條,有時(shí)候少兩條,但是我想要順序是:身份證號(hào),手機(jī)號(hào),微信號(hào),微信ID,的順序,請(qǐng)問大家該怎么寫?
謝謝大家的回答,可能大家誤會(huì)我的意思了,前面的appType是唯一標(biāo)識(shí)。我從大家身上收到很多啟發(fā),想出了一個(gè)復(fù)雜點(diǎn)的辦法

回答
編輯回答
入她眼

?

var arr  = ['身份證號(hào)','手機(jī)號(hào)','微信號(hào)',……];
var newData = [];
for(var i of arr.keys()){
    for(var j of data.keys()){
        if(arr[i] == data[j].appName){
            newData.push(data[j]);
            
        }
    }

}
2017年2月17日 18:52
編輯回答
空白格

arr.sort()

        const arr = [{
            'appType': 'D201005',
            'appName': '手機(jī)號(hào)'
        }, {
            'appType': '1030001',
            'appName': '微信號(hào)'
        }, {
            'appType': '0201008',
            'appName': '微信ID'
        }, {
            'appType': '1030001',
            'appName': '微信號(hào)'
        }, {
            'appType': '1030001',
            'appName': '微信號(hào)'
        }, {
            'appType': '10300361',
            'appName': '身份證號(hào)'
        }, {
            'appType': '1030001',
            'appName': '微信號(hào)'
        }]
        
        const order = {
            '身份證號(hào)': 0,
            '手機(jī)號(hào)': 1,
            '微信號(hào)': 2,
            '微信ID': 3,
        }
        arr.sort((a, b) => {
            return order[a.appName] - order[b.appName]
        })
2018年7月23日 01:42
編輯回答
葬愛

for in性能有些低,用object.keys

2018年6月25日 19:29
編輯回答
落殤

最直白的想法,聲明四個(gè)數(shù)組用來存儲(chǔ)四類值,進(jìn)行一次遍歷,把相同的值push進(jìn)同一個(gè)數(shù)組,最后返回的時(shí)候用contact函數(shù)連接一下

2017年12月12日 16:42
編輯回答
薔薇花

結(jié)果:
clipboard.png
代碼:

var arr = [
    {'appType':'D201005' , 'appName':'手機(jī)號(hào)'},
    {'appType':'1030001' , 'appName':'微信號(hào)'},
    {'appType':'0201008' , 'appName':'微信ID'},
    {'appType':'1030001' , 'appName':'微信號(hào)'},
    {'appType':'1030001' , 'appName':'微信號(hào)'},
    {'appType':'10300361' , 'appName':'身份證號(hào)'},
    {'appType':'1030001' , 'appName':'微信號(hào)'},
];
function sort(arr,sort){
    var map = {};
    for(var i in arr){
        var data = arr[i];
        var list = map[data.appName];
        if(!list){
            map[data.appName] = [ data ];
        }else{
            list.push(data);
        }
    }
    
    var result = [];
    for(var i in sort){
        var k = sort[i];
        if(k in map){
            result = result.concat( map[k] );
        }
        
    }
    return result;
}

console.log( sort(arr,"身份證號(hào),手機(jī)號(hào),微信號(hào),微信ID".split(",")) );

arr可以任意增加減少數(shù)據(jù)

2017年5月22日 23:54