私は2つの配列を持っています:
- values: すべての値を含む配列
- mainValues: mainValues のリスト。これらの値は配列値に既に存在しますが、並べ替える必要があります。つまり、mainValues は配列値の最初の値である必要があります
この問題を次のように解決しましたが、これがベスト プラクティスであるかどうかはわかりません。
var values = ['bla', 'x', 'y', 'z', 'two', 'one', 'three'];
var mainValues = ['one', 'two', 'three'];
_.forEach(mainValues.reverse(), function(val) {
var index = _.indexOf(values, val);
values.splice(index, 1);
values.unshift(val);
});
console.log(values); // => ["one", "two", "three", "bla", "x", "y", "z"]
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>