Pour simplement fusionner les tableaux (sans supprimer les doublons)
Utilisation de la version ES5 Array.concat
:
var array1 = ["Vijendra", "Singh"];
var array2 = ["Singh", "Shakya"];
console.log(array1.concat(array2));
const array1 = ["Vijendra","Singh"];
const array2 = ["Singh", "Shakya"];
const array3 = [...array1, ...array2];
Puisqu'il n'existe pas de moyen "intégré" de supprimer les doublons ( ECMA-262 a en fait Array.forEach
qui serait idéal pour cela), nous devons le faire manuellement :
Array.prototype.unique = function() {
var a = this.concat();
for(var i=0; i<a.length; ++i) {
for(var j=i+1; j<a.length; ++j) {
if(a[i] === a[j])
a.splice(j--, 1);
}
}
return a;
};
Ensuite, pour l'utiliser :
var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];
// Merges both arrays and gets unique items
var array3 = array1.concat(array2).unique();
Cela permet également de conserver l'ordre des tableaux (c'est-à-dire qu'aucun tri n'est nécessaire).
Puisque de nombreuses personnes sont contrariées par l'augmentation du prototype de Array.prototype
et for in
boucles, voici une façon moins invasive de l'utiliser :
function arrayUnique(array) {
var a = array.concat();
for(var i=0; i<a.length; ++i) {
for(var j=i+1; j<a.length; ++j) {
if(a[i] === a[j])
a.splice(j--, 1);
}
}
return a;
}
var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];
// Merges both arrays and gets unique items
var array3 = arrayUnique(array1.concat(array2));
Pour ceux qui ont la chance de travailler avec des navigateurs où ES5 est disponible, vous pouvez utiliser Object.defineProperty
comme ça :
Object.defineProperty(Array.prototype, 'unique', {
enumerable: false,
configurable: false,
writable: false,
value: function() {
var a = this.concat();
for(var i=0; i<a.length; ++i) {
for(var j=i+1; j<a.length; ++j) {
if(a[i] === a[j])
a.splice(j--, 1);
}
}
return a;
}
});
24 votes
Avant de poster une nouvelle réponse, pensez qu'il y a déjà plus de 75 réponses à cette question. Veillez à ce que votre réponse apporte des informations qui ne figurent pas parmi les réponses existantes.
2 votes
[...nouveau Set([...[1, 2, 3], ...[2, 3, 4]])] résultat [1, 2, 3, 4]
0 votes
Si vous souhaitez une solution plus générique qui couvre également la fusion profonde, jetez un coup d'œil à la page suivante. à cette question à la place. Certaines réponses couvrent également les tableaux.