JavaScriptでkey:valueを扱う方法
習慣沉默
習慣沉默 2017-05-19 10:43:49
0
2
817

最近、ホテルの評価システムのロジックである値のペア (ここでの値 value は複数の行を参照できます) に従って key:value の配列を並べ替える必要があるアルゴリズムの問​​題に遭遇しました。
Name Hygiene User Experience Security
A x1 y1 z1
B x2 y2 z2
... ... ... ...
上記と同様に、まず、衛生状態を並べ替えた後、衛生状態ランキングから上位 3 人を選択します。以前に選択した上位 3 人を選択します。ユーザー エクスペリエンスに基づいて並べ替えます。ユーザー エクスペリエンスに基づいて上位 2 人を選択します。セキュリティに基づいて並べ替えます。セキュリティを選択します。場所。
最後に1位を出力します。
実際に似ているような気がするのですが、情報や地図機能を確認したのですがやり方がよく分からないのでアドバイスをお願いします。 (追伸: 自分のアルゴリズムは明らかに悪くないと感じていますが、少し複雑なアルゴリズムに遭遇するたびに混乱してしまいます。フロントエンドのピットに入って間もなく、基本的な JS 関連のコードを一読しました。) 、疑問を解決してください。

習慣沉默
習慣沉默

全員に返信(2)
漂亮男人

リーリー

いいねを押す +0
小葫芦

まず第一に、これはあなたのトピックまたはプロジェクトですか? 実際のプロジェクトの場合は、lodashsortBy を使用してリスト内のオブジェクトを並べ替えることができます。

ホテル リスト モデルが次のように単純化されるとします。

リーリー

現在の要件は、リスト内のオブジェクトを最初に a で並べ替え、次に b で並べ替え、次に c で並べ替えることです。 実装するには:

リーリー

スコアが大きいほど良い場合は、逆の順序にする必要があります

リーリー

質問で述べたように、3、2、1 を選びたい場合、毎回すべての結果を並べ替える必要はありません。

リーリー

面接の質問の場合は、sortBy这个函数, 可以简单利用Array#sort実装を完了する必要があります:

リーリー

注意: sortBy要实现成稳定排序, 即两个分数一致的对象,排序前后相对位置要保持不变。
当然直接使用上Array#sort(func)この機能も非常に便利です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート