Javascript iki diziyi birleştirme ve de-yinelenen öğeleri
İki JavaScript diziler var:
var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];
Çıkış olmak istiyorum
var array3 = ["Vijendra","Singh","Shakya"];
Çıkış dizisi tekrarlanan sözcükler çıkarılmalıdır.
Nasıl ben orijinal dizi içine aynı sırayla her diziden sadece benzersiz öğeleri almak, böylece JavaScript iki diziyi birleştirme?
CEVAP
Sadece diziler (kaldırma yinelenen olmadan) birleştirmek için kullanın. Array.concat
:
var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];
var array3 = array1.concat(array2); // Merges both arrays
// [ 'Vijendra', 'Singh', 'Singh', 'Shakya' ]
'Yoktur' yinelenen (ECMA-262 aslında harika olurdu Array.forEach
bunun için vardır) kaldırmak için, el ile yaptığımız: . inşa beri
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;
};
Daha sonra kullanmak için:
var array1 = ["Vijendra","Singh"];
var array2 = ["Singh", "Shakya"];
// Merges both arrays and gets unique items
var array3 = array1.concat(array2).unique();
Bu da diziler (i.sırasını koruyacaktır e, gerekli hayır sıralama).
DÜZENLEME:
Birçok kişi Array.prototype
for in
döngüler prototip büyütme hakkında rahatsız olduğundan, burada kullanmak için daha az invaziv bir yoludur:
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));
ES5 bulunduğu ilerici tarayıcılar ile çalışmak için yeterince şanslı olanlar, Object.defineProperty
kullanabilirsiniz:
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;
}
});
Nasıl JavaScript bir dizi başında yeni...
Javascript içinde bir dizi boş öğeleri...
Bir DOM tüm alt öğeleri JavaScript düğ...
/JavaScript Diziler Dizisi dümdüz birl...
Yinelenen bulmak için en kolay yolu bi...