javascript - 変数をオブジェクトのキーとして使用し、それを配列にプッシュするにはどうすればよいですか?
世界只因有你
世界只因有你 2017-07-05 11:00:13
0
4
1537

a と b のキーはすべて等しいです

リーリー

あるいは、より優れた、より効率的で、より素晴らしい方法はありますか?

私が達成したい効果はこれです

リーリー

この問題の根本は、オブジェクトを宣言するときに変数をキーとして使用する方法にあります。

世界只因有你
世界只因有你

全員に返信(4)
Ty80

ES6 では、オブジェクトのプロパティ名として 表达式 を使用して、オブジェクトを定義するときにリテラルを使用できるようになります

リーリー
いいねを押す +0
淡淡烟草味

質問の説明を修正してから回答してください

この問題の根本は、オブジェクトを宣言するときに変数をキーとして使用する方法です

変数が文字列または数値の場合

リーリー

変数がオブジェクトの場合

次に、ES6 Mapを使用する必要があります

前のメソッドのスーパーセットです

を見てください。 リーリー

スクリーンショット


新しい書き方

リーリー

使用reduce

リーリー

スクリーンショット


修正前

リーリー

達成しました

うーん。 。問題の説明を長い間読んだ後、何をしたいのかよくわかりません

関数名とbefore afterから推測してみましょう。オブジェクトaとオブジェクトbの異なる属性と値をそれぞれbeforeとafterに入れますか? その場合は、以下のコードを見てください

リーリー

スクリーンショット

いいねを押す +0
学霸

実際、あなたの質問は
この質問に要約されます:

リーリー

key は文字列 "key" に解析され、期待される変数は key です (例: key="abc",value="123" "key",期望是变量key 例当key="abc",value="123"
上述实际变成{"key":"123"} 应该是{"abc":"123"}
最直接的答案是 var o = {}; o[key] = value; ret.push(o); 上記は実際には {"key":"123"} となり、{"abc":"123"} となるはずです
最も直接的な答えは var o = {};
; しかし、もっと簡単な方法はありますか?

議論の結果は以下の通りです

リーリー
注: 上記の回答は時系列でリストされていますが、どれも完全に試したものではありません。重要なのは、アイデアを学ぶことです。

どのソリューションを選択するかについては、シンプルさ、パフォーマンス、読みやすさに基づいて比較検討したいと思います

人によって意見が異なります。

これは QQ グループでのディスカッションの要約です。私はただのポーターです。 🎜
いいねを押す +0
typecho

ES6 はオブジェクトのプロパティを変数としてサポートしており、その記述方法は次のとおりです:

リーリー

プッシュパラメータでは、この記述方法を使用するだけです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート