基本的に私の質問のタイトルです。オブジェクトの2つの配列を取得しました。
配列1:
var firstArray = [
{id: "1", value: 1},
{id: "5", value: 0.5},
{id: "3", value: 0.25},
{id: "4", value: 0.125},
{id: "2", value: 0.0625}
];
アレイ2:
var secondArray = [
{id: 1, name: "a"},
{id: 2, name: "b"},
{id: 3, name: "c"},
{id: 4, name: "d"},
{id: 5, name: "e"}
];
次のように、順序が最初の配列の順序と一致するように2番目の配列を並べ替えるにはどうすればよいですか。
結果:
var secondArray = [
{id: 1, name: "a"},
{id: 5, name: "e"},
{id: 3, name: "c"},
{id: 4, name: "d"},
{id: 2, name: "b"}
];
質問のタイトルがOPの後にあることを示しているので、アンダースコア/ Lodashの回答を与えます。このコードは、最初の配列の対応するIDのインデックスで2番目の配列を並べ替えます。
$(function() {
var firstArray = [
{id: "1", value: 1},
{id: "5", value: 0.5},
{id: "3", value: 0.25},
{id: "4", value: 0.125},
{id: "2", value: 0.0625}
];
var secondArray = [
{id: 1, name: "a"},
{id: 2, name: "b"},
{id: 3, name: "c"},
{id: 4, name: "d"},
{id: 5, name: "e"}
];
var sorted = _.sortBy(secondArray, function(obj) {
return _.findIndex(firstArray, {id: obj.id.toString()});
});
console.log(sorted);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加