国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - js trie d'abord par age, si l'age est le même, puis trie par haut
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-07-07 10:34:15
0
5
1356
var obj = [{
        id : 1,
        age : 20,
            top :5
    },{
        id : 3,
        age : 21,
            top : 6
    },{
        id : 2,
        age : 20,
            top : 8
    }]
  function keysort(property) {
      return function(a, b) {
          var value1 = a[property] == '-' ? 0 : a[property];
          var value2 = b[property] == '-' ? 0 : b[property];
           return value1 - value2;
      }
  }
  var obj1 = obj.sort(keysort('age'));
寫一半 不會寫了  age相同的情況下  再按照top從高到低排序  想請教下老司機 
PHP中文網(wǎng)
PHP中文網(wǎng)

認證0級講師

répondre à tous(5)
扔個三星炸死你

C'est tellement long...

obj.sort( function(curr,next) {
    return !!( curr.age-next.age )? curr.age-next.age: curr.top-next.top;
} );

N'est-ce pas génial

phpcn_u1582

Utilisez simplement ce que vous apportez

    obj = obj.sort((a, b) =>  { return a.age - b.age || b.top - a.top;} );
    console.log(obj);
    
    

Parce que vous parlez de trier le haut de haut en bas. Cette fa?on d'écrire signifie que plus le nombre est grand, plus il est élevé. Si vous voulez que le nombre le plus petit soit plus petit, changez simplement la position b.top - a.top. vers a.top - b.top

習慣沉默

Expérience en ligne https://jsfiddle.net/hguyjgs8/1/

//假設top 不大于1000, 大于1000的,適度修改
var obj = [{
  id: 1,
  age: 20,
  top: 5
}, {
  id: 3,
  age: 21,
  top: 6
}, {
  id: 2,
  age: 20,
  top: 8
}]

function pad(num, size) {
  var s = num + "";
  while (s.length < size) s = "0" + s;
  return s;
}

obj.sort((a, b) => pad(a.age, 2) + pad(1000-a.top, 3) > pad(b.age, 2)  + pad(1000-b.top, 3)).forEach((i) => {
    document.writeln(JSON.stringify(i)+'<br>');
});
三叔
function keySort (...args) {
    let props = args.map(name => {
        let desc = name[0] === '-'
        if (desc) name = name.substring(1)
        return { desc, name }
    })
    
    return (a, b) => {
        let result = 0
        for (let prop of props) {
            let p = prop.name
            result = prop.desc ? b[p] - a[p] : a[p] - b[p]
            if (result) return result
        }
        return result
    }
}

obj.sort(keySort('age', '-top'))

https://jsfiddle.net/sojxjqpf/

漂亮男人

Qui en premier

var whoFirst = ['age', 'top']; 

var copy = o => JSON.parse(
    JSON.stringify(o)
); 

var judge = (a, b, whos) => {
    if (whos.length === 0) return 0; 
    
    let key = whos[0]; 
    if (a[key] !== b[key]){
        return a[key] - b[key]; 
    } else {
        return judge(a, b, whos.slice(1)); 
    }
}

Suivant

var sorts = arr => {
    let a = copy(arr); 

    a.sort((a, b) => {
        return judge(a, b, whoFirst); 
    }); 
    
    return a; 
}

S

WhoFirst 升序。

var obj = [{
    id : 1,
    age : 20,
        top :5
},{
    id : 3,
    age : 21,
        top : 6
},{
    id : 2,
    age : 20,
        top : 8
},{
    id: 4,
    age: 20, 
    top: 2
},{
    id: 8,
    age: 20, 
    top: 2
},{
    id: 5,
    age: 20, 
    top: 11
},{
    id: 7,
    age: 20, 
    top: 9
},{
    id: 6,
    age: 20, 
    top: 2
},{
    id: 9,
    age: 20, 
    top: 1
}]; 


sorts(obj); 

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal