Maison > interface Web > js tutoriel > Explication détaillée de la copie de tableaux JavaScript

Explication détaillée de la copie de tableaux JavaScript

高洛峰
Libérer: 2017-02-03 13:38:00
original
1723 Les gens l'ont consulté

Les mots précédents

   La copie d'objet a été introduite dans le billet de blog précédent. Cet article présentera en détail la copie de tableau

push

function copyArray(arr){
  var result = [];
  for(var i = 0; i < arr.length; i++){
    result.push(arr[i]);
  }
  return result;
}
 
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3]
obj2.push(4);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3,4]
Copier après la connexion

<. 🎜>

join

  L'inconvénient de l'utilisation de cette méthode est que tous les éléments du tableau deviennent des chaînes

function copyArray(arr){
  var result = [];
  result = arr.join().split(&#39;,&#39;);
  return result;
}
 
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); //[1,2,3]
console.log(obj2); //[&#39;1&#39;,&#39;2&#39;,&#39;3&#39;]
obj2.push(4);
console.log(obj1); //[1,2,3]
console.log(obj2); //[&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,4]
Copier après la connexion

concat

function copyArray(arr){
  var result = [];
  result = arr.concat();
  return result;
}
 
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3]
obj2.push(4);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3,4]
Copier après la connexion

tranche

function copyArray(arr){
  var result = [];
  result = arr.slice();
  return result;
}
 
var obj1=[1,2,3];
var obj2=copyArray(obj1);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3]
obj2.push(4);
console.log(obj1); //[1,2,3]
console.log(obj2); //[1,2,3,4]
Copier après la connexion

Copie approfondie

La méthode ci-dessus Ce qui est implémenté n'est qu'une copie superficielle du tableau. Si vous souhaitez implémenter une copie complète du tableau, vous devez utiliser la méthode récursive

function copyArray(arr,result){
  var result = result || [];
  for(var i = 0; i < arr.length; i++){
    if(arr[i] instanceof Array){
      result[i] = [];
      copyArray(arr[i],result[i]);
    }else{
      result[i] = arr[i];
    }     
  }
  return result;
}
 
var obj1=[1,2,[3,4]];
var obj2=copyArray(obj1);
console.log(obj1[2]); //[3,4]
console.log(obj2[2]); //[3,4]
obj2[2].push(5);
console.log(obj1[2]); //[3,4]
console.log(obj2[2]); //[3,4,5]
Copier après la connexion

Pour. Pour des articles plus détaillés sur la copie de tableaux JavaScript, veuillez faire attention au site Web PHP chinois !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal