この記事の例では、JS 配列とオブジェクトのディープ コピー操作について説明します。参考のために全員と共有してください。詳細は次のとおりです:
let arr = [ undefined, function(){ console.log(123); }, true, null, { name:"123", age:23 } ]; // arr作为拷贝对象
Array.from () はクラス配列を実数配列に変換するため、新しい配列を返します。
let arr1 = Array.from(arr); arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]
let arr1 = Object.assign([], arr) arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]
このメソッドは、オブジェクトのディープ コピーとしても使用できます
let arr1 = arr.slice(0); arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]
let arr1 = arr.concat(); arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]
// let [...arr1] = arr; // 这两种都可以 let arr1 = [...arr]; arr[0] = 2; console.log(arr1); // [ undefined, [Function], true, null, { name: '123', age: 23 } ]
このメソッドは、オブジェクトのディープ コピーとしても使用できます
let obj = { name: "a", age: 20, sex: false, user: { a: 20, n: "b" }, f: function(){ return 1; }, u: undefined, n: null }
スプレッド演算子と Object.assign() メソッドを使用してオブジェクトをディープ コピーする
let obj1 = Object.assign({}, obj) obj[age] = 2; console.log(obj1); // let obj = { name: "a", age: 20, sex: false,user: {a: 20,n: "b},f: function(){return 1;},u: undefined,n: null}
関連学習の推奨事項: JavaScript ビデオ チュートリアル
以上が配列とオブジェクトの JS ディープ コピー操作の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。