Maison >interface Web >js tutoriel >Exemple d'opération de copie approfondie JS de tableaux et d'objets

Exemple d'opération de copie approfondie JS de tableaux et d'objets

coldplay.xixi
coldplay.xixiavant
2020-07-29 17:36:552431parcourir

Exemple d'opération de copie approfondie JS de tableaux et d'objets

L'exemple de cet article décrit l'opération de copie approfondie des tableaux et des objets JS. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1. Copie complète de array

let arr = [
 undefined,
 function(){
  console.log(123); 
 },
 true,
 null,
 {
  name:"123",
  age:23
 }
];
// arr作为拷贝对象

1. ) peut copier un tableau. Le tableau de classe est converti en un vrai tableau, il renvoie donc un nouveau tableau.

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 } ]

Cette méthode peut également être utilisée comme copie complète de l'objet

3. 🎜>4 . Concat()

let arr1 = arr.slice(0);
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]

5. Copie profonde de l'opérateur étendu

let arr1 = arr.concat();
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]

Cette méthode peut également être utilisée comme copie profonde d'un objet

2. d'un objet

// let [...arr1] = arr; // 这两种都可以
let arr1 = [...arr];
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]

Utilisez l'opérateur spread et la méthode Object.assign() pour copier en profondeur des objets

let obj = {
 name: "a",
 age: 20,
 sex: false,
 user: {
  a: 20,
  n: "b"
 },
 f: function(){
  return 1;
 },
 u: undefined,
 n: null
}

Recommandations d'apprentissage associées :

Tutoriel vidéo javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer