So führen Sie die Arrays einfach zusammen (ohne Duplikate zu entfernen)
Verwendung der ES5-Version 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];
Da es keine 'eingebaute' Möglichkeit gibt, Duplikate zu entfernen ( ECMA-262 hat tatsächlich Array.forEach
was in diesem Fall sehr hilfreich wäre), müssen wir dies manuell tun:
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;
};
Dann, um sie zu benutzen:
var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];
// Merges both arrays and gets unique items
var array3 = array1.concat(array2).unique();
Dadurch wird auch die Reihenfolge der Arrays beibehalten (d.h. keine Sortierung erforderlich).
Da sich viele Menschen über die prototypische Vergrößerung der Array.prototype
y for in
Loops, hier ist eine weniger invasive Art, sie zu verwenden:
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));
Diejenigen, die das Glück haben, mit Browsern zu arbeiten, in denen ES5 verfügbar ist, können Folgendes verwenden Object.defineProperty
wie diese:
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;
}
});