私はキーの配列に基づいて順序付けされた値の配列にこれを変換したい:オブジェクトをソートされた配列に変換する方法は?
{
tom: 1,
jim: 2,
jay: 3
}
Input
- >Output
例:
['jim', 'tom', 'jay']
- >[2, 1, 3]
['jay', 'tom', 'jim']
- >[3, 1, 2]
どうすればこのことができますか?私はむしろ1行のロダッシュの解決策を望んでいます。
私はキーの配列に基づいて順序付けされた値の配列にこれを変換したい:オブジェクトをソートされた配列に変換する方法は?
{
tom: 1,
jim: 2,
jay: 3
}
Input
- >Output
例:
['jim', 'tom', 'jay']
- >[2, 1, 3]
['jay', 'tom', 'jim']
- >[3, 1, 2]
どうすればこのことができますか?私はむしろ1行のロダッシュの解決策を望んでいます。
あなたが望むようにするために、値の配列を取得するためにlodashの_.at()
を使用することができます。
var data = {
tom: 1,
jim: 2,
jay: 3
};
var result1 = _.at(data, ['jim', 'tom', 'jay']);
var result2 = _.at(data, ['jay', 'tom', 'jim']);
console.log("['jim', 'tom', 'jay'] -> ", JSON.stringify(result1));
console.log("['jay', 'tom', 'jim'] -> ", JSON.stringify(result2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
あなたはArray#map
と、プレーンJavaScriptを使用して値をマッピングすることができます。
var data = { tom: 1, jim: 2, jay: 3 },
order = ['jim', 'tom', 'jay'],
result = order.map(k => data[k]);
console.log(result);
const data = {
tom: 1,
jim: 2,
jay: 3
}
const order = ['jay', 'tom', 'jim'];
const result = order.map((item) => data[item]);
console.log(result);
function SortByKeyArray(obj, key_arr) {
return key_arr.map(k => obj[k]);
}
またはMORがある
let SortByKeyArray = (obj, keys) => keys.map(k => obj[k]);
私に優しいe。