配列とオブジェクトの JS ディープ コピー操作の例

coldplay.xixi
リリース: 2020-07-29 17:36:55
転載
2366 人が閲覧しました

配列とオブジェクトの JS ディープ コピー操作の例

この記事の例では、JS 配列とオブジェクトのディープ コピー操作について説明します。参考のために全員と共有してください。詳細は次のとおりです:

1. 配列のディープ コピー

let arr = [
 undefined,
 function(){
  console.log(123); 
 },
 true,
 null,
 {
  name:"123",
  age:23
 }
];
// arr作为拷贝对象
ログイン後にコピー

1. Array.from()

Array.from () はクラス配列を実数配列に変換するため、新しい配列を返します。

let arr1 = Array.from(arr);
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
ログイン後にコピー

2.Object.assign()

let arr1 = Object.assign([], arr)
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
ログイン後にコピー

このメソッドは、オブジェクトのディープ コピーとしても使用できます

3.Slice()

let arr1 = arr.slice(0);
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
ログイン後にコピー

4 . Concat()

let arr1 = arr.concat();
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
ログイン後にコピー

5. 拡張演算子のディープ コピー

// let [...arr1] = arr; // 这两种都可以
let arr1 = [...arr];
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
ログイン後にコピー

このメソッドは、オブジェクトのディープ コピーとしても使用できます

2. ディープ コピーオブジェクトの

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jb51.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!