2016-04-05 7 views
-1

の最初であることが文字私はこのようなオブジェクトの配列を有するソート

  1. これらの項目は、動的である - 「名前」と「sortItem」特性の両方。
  2. 名前を表示するのに別のフィールドで並べ替える理由があります。
  3. この配列はサーバーから来ているので、簡単にJSON文字列対応でなければなりません。

それから私は(sortBylodashからである)sortBy(myArray, 'sortItem')でそれを並べ替えます。

デフォルトオプションを追加したいので、ソート後に常に最初のオプションであることを確認します。 ["", "A", "a"]


の結果はそのメートル思え[".", "A", "a"]

  • var myList = ['a', 'A', '']; _.sortBy(myList)["A", "_", "a"]
  • var myList = ['a', 'A', '.']; _.sortBy(myList)結果で["A", "a", 0]
  • var myList = ['a', 'A', '_']; _.sortBy(myList)結果で

    1. var myList = ['a', 'A', 0]; _.sortBy(myList)結果:だから私はいくつかのオプションを試してみました今のところ最良の賭けは{name: 'Default', sodtItem: ''}を追加することですが、私のデフォルトのアイテムが最初であることを保証する別の文字/値がありますか?

      編集

      質問はソート機能の構築方法ではありません。代わりに、どの文字がJavascriptで最も低い「値」を持っていますか?

      他の言葉で言えば、可能なすべての文字のリスト(jsonificationを渡すもの)をソートして並べ替えると、最初の文字は何ですか?

  • +0

    ソート機能は、同じ文字列で予期しない結果を生成します。注意して使用してください。 –

    +1

    最初にソートして*次に*デフォルトの項目を挿入できますか? – nnnnnn

    +0

    最初にソートする文字は何ですか? –

    答えて

    0

    メインの順序を決定する別のソートフィールドを追加することができます。また、「sortItem」はセカンダリソートになります。

    だからあなたのソートは次のようになります。

    _.sortBy(myArray, ['default', 'sortItem']) 
    

    そして、あなたの配列は次のようになりますでしょう

    var myArray = [ 
        {name: 'John', sortItem: 'abra'}, 
        {name: 'Doe', sortItem: 'cadabra'}, 
        {name: 'This is the default', sortItem: 'zzzzz', default: true} 
    ]; 
    
    +0

    これは有効なオプションですが、より簡単な答えがあるかどうかを確認するのを待っています。そうでない場合は、これを回答としてマークします。 – XAMeLi

    関連する問題