{2:'b',3:'c',1:'a'}
を[{1:'a'},{2:'b'},{3:'c'}]
に変換する方法lodash?オブジェクトをソートされた配列に変換する方法
0
A
答えて
6
それは+ Array.map
Object.keys
を使用して、かなり些細ですが、あなたが本当にlodash必要はありません。sort
機能の欠如について
const obj = {2:'b',3:'c',1:'a'};
const arr = Object.keys(obj).map(key => ({ [key]: obj[key] }))
console.log(arr)
を、上記のコードは、その数値的事実を悪用しています索引付けされたオブジェクト・キーは、(仕様に従って)順次格納されます。自分の注文を確認してください:ここで
console.log({2:'b',3:'c',1:'a'})
9.1.12 [[OwnPropertyKeys]]()
[[の関連部分でありますOwnPropertyKeys]] Oの内部メソッドは と呼ばれ、以下のステップが実行されます。
キーを新しい空リストにします。数値 インデックス順
2Aを昇順に、整数インデックスであるOの各自身 プロパティキーPについて
。キーの最後の要素としてPを追加します。
0
なぜロダッシュを使用するのですか?ちょうど通常のJavascriptを使用してください。解決策はちょっとはっきりさせることができますが、あなたのオブジェクトをループし、新しいフォーマットにあなたの望むフォーマットをプッシュすることです。私はまた、便宜のためにそこに並べ替えを投げますが、あなたの好みに再要因を自由に感じてください。
const obj = {2:'b',3:'c',1:'a'}
let newArr = [];
for (var key in obj) {
newArr.push({[key]: obj[key]})
newArr.sort((a, b) => a[key] > b[key])
}
console.log(newArr)
1
Lodashは本当にあなたが望むものを達成するために必要はありませんが、私はまだ、とにかくそれを追加し、ソート機能を追加しています。また、ネイティブJavaScriptの方法も含めました。 Object.entries
と今後のJavaScriptで
const obj = {b: 3, c: 2, a: 1};
const sortByKeys = object => {
const keys = Object.keys(object)
const sortedKeys = _.sortBy(keys)
return _.map(sortedKeys, key => ({ [key]: object[key]}))
}
// the lodash way, and sorted
console.log(sortByKeys(obj))
// simpler way
const result = Object.keys(obj)
.map(key => ({ [key]: obj[key] }))
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
2
、あなたは、単一のオブジェクトを持つ新しい配列をマッピングすることができます。
var data = {2:'b',3:'c',1:'a'},
result = Object
.entries(data)
.sort((a, b) => a[0] - b[0])
.map(([k, v]) => ({ [k]: v }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
lodashで、あなたは
_.chain
、_.toPairs
、_.sortBy
、_.map
使用することができますND_.fromPairs
var data = {2:'b',3:'c',1:'a'},
result = _
.chain(data)
.toPairs(data)
.sortBy([0])
.map(o => _.fromPairs([o]));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
関連する問題
- 1. オブジェクトをソートされた配列に変換する方法は?
- 2. オブジェクトリテラルをソートされた配列に変換する
- 3. 配列変換ネストされたオブジェクト
- 4. 変換オブジェクトを配列に変換する方法
- 5. オブジェクトに値でソートされたインデックスの配列を作成する方法
- 6. オブジェクトを配列に変換したオブジェクトlodashを変換する
- 7. ネストされた配列をオブジェクトに変換する
- 8. ネストされた配列をreduceオブジェクトに変換する
- 9. SwiftyJSONオブジェクトの配列をSwiftyJSONオブジェクトに変換する方法は?
- 10. ソートされた配列からなるソートされた配列をソート
- 11. ネストされたセットをネストされた配列に変換する方法
- 12. netlogoにソートされた配列をプロットする方法は?
- 13. オブジェクトの配列を文字列に変換する方法
- 14. オブジェクトのネストされた配列をネストされたプロパティテンプレートオブジェクトに変換する
- 15. 「ソートされた(by:)」配列が返されない/素早くPFObjectsの配列をソートする方法
- 16. オブジェクト配列を文字列配列に変換する方法は?
- 17. JavaオブジェクトをJsonオブジェクトに変換してjson配列に入れる方法
- 18. ネストされたオブジェクトの配列をバッファーノードに変換
- 19. 値のペアをソートされた一意の配列に変換する方法は?
- 20. オブジェクトの配列をキーペアの値に変換する方法
- 21. オブジェクトを配列に変換する方法
- 22. 値をオブジェクトの配列に変換する方法は?
- 23. 単一のxmlオブジェクトを配列に変換する方法
- 24. PHPでオブジェクトを配列に変換する方法
- 25. オブジェクトをanglejsの配列に変換する方法
- 26. オブジェクトをJavaScriptで配列に変換する方法は?
- 27. 配列をJsonConverterのオブジェクトに変換する方法
- 28. JavaScript内のオブジェクトのネストされた配列をソートする
- 29. 入れ子にされたjsonオブジェクトを配列に変換する
- 30. オブジェクト値でオブジェクトの配列をソートする方法は?
私はhttps://stackoverflow.com/questions/29623333/sort-keys-in-javascript-(オブジェクトキーがソートされると仮定されていません知っていますオブジェクト)、しかし私はObject.keysが通常ソートされているか分からなかった。これについての詳しい情報はどこにありますか? – kevguy
スペックと関連する部分@ kevlai22へのリンクで私の答えを更新しました。これは数値指標にのみ関連することに注意してください –
ありがとうございます! @RobM。 – kevguy