[解決済み] ネストされたオブジェクトをフラット化するワンライナー
2022-03-12 03:32:40
質問
ネストしたオブジェクトをフラット化したいのですが、どうすればいいですか?ワンライナーが必要です。この処理の正しい用語が何なのかわからない。 私は純粋なJavascriptまたはライブラリを使用することができます、私は特にアンダースコアが好きです。
私は ...
{
a:2,
b: {
c:3
}
}
そして、私は欲しい...
{
a:2,
c:3
}
試してみたが.
var obj = {"fred":2,"jill":4,"obby":{"john":5}};
var resultObj = _.pick(obj, "fred")
alert(JSON.stringify(resultObj));
これは動作しますが、私はこれを動作させる必要があります....
var obj = {"fred":2,"jill":4,"obby":{"john":5}};
var resultObj = _.pick(obj, "john")
alert(JSON.stringify(resultObj));
解決方法は?
はい、どうぞ。
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
要約: 1 プロパティオブジェクトの配列を再帰的に作成し、それらをすべて
Object.assign
.
これは、以下のような ES6 の機能を使用しています。
Object.assign
やスプレッド演算子を必要としないように書き換えるのは簡単なはずです。
一行のおかしさは気にせず、実際に読める方がいいという人のために(読みやすさの定義にもよりますが)。
Object.assign(
{},
...function _flatten(o) {
return [].concat(...Object.keys(o)
.map(k =>
typeof o[k] === 'object' ?
_flatten(o[k]) :
({[k]: o[k]})
)
);
}(yourObject)
)
関連
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] 配列の結合/平坦化
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】JavaScriptのオブジェクトの長さ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
JavaScriptにおけるマクロタスクとミクロタスクの詳細
-
jQueryのコピーオブジェクトの説明
-
JavaScriptのクロージャの説明
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
[解決済み] ネストされたJSONオブジェクトをフラット化/アンフラット化する最速の方法