問題タブ [spread-syntax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
170 参照

javascript - object ではなく JSX 属性として object prop を渡す

次のコンポーネントが与えられます。これらの小道具、属性を取得して、この形式の別のコンポーネントに渡す方法を探しています。

たとえば、次のようにラップ<AdminHeader/>するとします。

次に、すべてをに変換することなく、小道具を呼び出し<WrappedAdminHeader />て渡したい:adminHeaderJSON

むしろ、次のように属性を JSON に変換する必要があります。

これは可能ですか?

0 投票する
4 に答える
5900 参照

javascript - スプレッド要素が多次元配列のコピーに適さないのはなぜですか?

mdn より: Spread Syntax

注: 通常、ES2015 の拡散演算子は、配列のコピー中に 1 レベルの深さになります。したがって、多次元配列のコピーには適していません。Object.assign() および Object スプレッド構文の場合も同様です。理解を深めるために、以下の例を見てください。

上記のステートメントのポイントは何ですか? 上記のコード サンプルは、.slice() メソッドを使用して a の配列を b にコピーした場合とまったく同じように機能します。https://repl.it/HKOq/2の配列に別の次元を追加しようとしましたが、それでも期待どおりに機能しました。

では、スプレッド構文が多次元配列のコピーに適していないのはなぜでしょうか?

助けていただければ幸いです。

編集:

estus と vol7ron の回答を読むと、理解するのに役立ちました。基本的に、estus が技術的に指摘しているように、多次元配列ではなく、配列内に配列があるだけです。

また、vol7ron が説明しているように、配列の最初のレベルのみがコピーされるため、メモリ内のオブジェクトは、さらにネストされた要素に対して同じままです。

また、スプレッド構文の使用がスライス演算子とは異なる動作をするはずだったと疑ったのも間違っていました