0

並べ替えたい配列の例を次に示します。

    [ { nums: 'http://s3.amazonaws.com/1375304393109.png',
        variant: { name: 'original' } },
      { nums: 'http://s3.amazonaws.com/2315456487896.jpg',
        variant: { name: 'original' } },
      { nums: 'http://s3.amazonaws.com/1375304393109.png',
        variant: { name: 'r256x200', size: '256x200' } },
      { nums: 'http://s3.amazonaws.com/1375304393091.jpg',
        variant: { name: 'r256x200', size: '256x200' } },
      { nums: 'http://s3.amazonaws.com/2315456487896.jpg',
        variant: { name: 'r512x400', size: '512x400' } },
      { nums: 'http://s3.amazonaws.com/1375304393091.jpg',
        variant: { name: 'r512x400', size: '512x400' } } ]

nums(string) キーに基づいて配列をソートしたい。配列をソートする方法は非常に簡単です。同じ数字を隣り合わせにグループ化します。つまり、

    [ { nums: 'http://s3.amazonaws.com/1375304393109.png',
        variant: { name: 'original' } },
      { nums: 'http://s3.amazonaws.com/1375304393109.png',
        variant: { name: 'r256x200', size: '256x200' } },
      { nums: 'http://s3.amazonaws.com/2315456487896.jpg',
        variant: { name: 'original' } },
      { nums: 'http://s3.amazonaws.com/2315456487896.jpg',
        variant: { name: 'r512x400', size: '512x400' } },
      { nums: 'http://s3.amazonaws.com/1375304393091.jpg',
        variant: { name: 'r256x200', size: '256x200' } },
      { nums: 'http://s3.amazonaws.com/1375304393091.jpg',
        variant: { name: 'r512x400', size: '512x400' } } ]

同じ番号がグループ化されている限り、順序は順不同である必要はありません。これを行う最速の方法は何ですか?

混乱して申し訳ありません。これは元の質問のもう少し複雑なバージョンだと思います。誰でも良いアイデアがありますか?

4

2 に答える 2

0

数値を比較する場合:

array.sort(function(a,b) { return a.nums - b.nums })

文字列を比較する場合(あなたの場合):

 array.sort(function(a,b) { return a.nums.localeCompare(b.nums) })
于 2013-07-31T21:30:47.593 に答える