今回は、JSのObject値を結合する方法と、JSのObject値を結合する際の注意点を紹介します。実際のケースを見てみましょう。
前書き: 日々の開発作業では、js の object 内のすべての値をコピーすることに遭遇したり、electron を使用してクライアントを開発し、改訂中に設定のマージの問題に直面したりすることがあります。そこでこの記事では、この問題に対する簡単な解決策を紹介します。
はじめに: たとえば、obj1 と obj2 がある場合、obj2 の同じフィールドと深さを持つ obj1 のすべての値を obj2 にコピーする必要があります。また、obj2 のフィールド構造を変更しないで、次のメソッドを呼び出すだけです。 (ES6 書き込みメソッドを使用)。
コード:
/** * 将src中的数据copy到dist中,并保留dist的结构 * @param src * @param dist */ copyValue(src, dist) { if (!src || typeof(src) !== 'object' || typeof(dist) !== 'object'){ return ; } let keys = Object.keys(dist) if (keys && keys.length > 0 && isNaN(keys[0])){ keys.forEach(key => { let value = dist[key] let srcVal = src[key] // 判断是不是对象,如果是则继续遍历,不是则开始赋值或忽略 if (value !== undefined && typeof(value) === 'object' && srcVal && typeof(srcVal) === 'object' && srcVal[0] === undefined){ copyValue(srcVal, value) } else if (value !== undefined && srcVal && typeof(value) == typeof (srcVal)){ // 如果源数据存在,并且类型一致,则开始赋值 dist[key] = src[key] } }) } },
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。
推奨書籍:
以上がJSオブジェクト値をマージする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。