2016-04-14 3 views
2

İki dizim var.iki diziyi karşılaştırmak için bir diziden diğerine JavaScript eklemeden önce

var addFrom = ["orange", "banana", "watermelon", "lemon", "peach"]; 
var addTo = ["pear", "tangerine", "grape", "orange", "blueberry"]; 

ben "addFrom" dizideki ilk öğe "addto" dizide zaten olup olmadığını kontrol etmek istiyorum.

"addTo" dizisinde "addFrom" dizisinde ilk öğe yoksa, bu maddeyi "addTo" dizisine eklemek isterim.

Ancak, "addFrom" dizisindeki ilk öğe zaten "addTo" dizisinde bulunuyorsa, "addFrom" dizisindeki ikinci öğeye geçmek ve onu bulmak için aynı şeyi yapmak istiyorum. "addTo" dizisinde olmayan "addTo" dizisinde, "addTo" dizisine eklenecek öğe. ve "addTo" dizisine sadece bir öğe eklemek istiyorum.

var addTo = ["pear", "tangerine", "grape", "orange", "blueberry", "banana"]; 

nasıl JavaScript yapabilirsiniz: Sonuç olarak

, ben "addto" dizi böyle bakmak istiyorum?

+1

istenilen sonucu ekleyin. –

cevap

2

kullanabilirsiniz.

-1

Sen Array#some() kullanabilir ve bir öğe addTo dizide değilse yineleme durdurabilir ForEach

addFrom.forEach(function(v,i){ 
if(addTo.indexOf(v)<0) 
addTo.push(v); 
} 
) 
+2

Sorudan: _ "" addTo "dizisine yalnızca bir öğe eklemek istiyorum" _. Bu kod, tüm eksik öğeleri 'addFrom' – Andy

0

https://jsfiddle.net/povvx8hg/

var addFrom = ["orange", "banana", "watermelon", "lemon", "peach"]; 
var addTo = ["pear", "tangerine", "grape", "orange", "blueberry"]; 

for (i = 0; i < addFrom.length; i++) { 
    if(addTo.indexOf(addFrom[i]) != -1) { 
    console.log("Exist"); 
    } else { 
    addTo.push(addFrom[i]); 
    } 
} 

console.log(addTo); 
+0

Check konsol tarayıcısından iter! – Cuchu

+0

İlk basamağından sonra döngüden çıkmayı unuttuysanız – yezzz

1

Basit döngü burada en iyi yaklaşım gibi görünüyor

var addFrom = ["orange", "banana", "watermelon", "lemon", "peach"], 
 
    addTo = ["pear", "tangerine", "grape", "orange", "blueberry"]; 
 

 
addFrom.some(function (a) { 
 
    if (!~addTo.indexOf(a)) { 
 
     addTo.push(a); 
 
     return true; 
 
    } 
 
}); 
 

 
document.write('<pre> ' + JSON.stringify(addTo, 0, 4) + '</pre>');
(I while kullandım).

var i = -1, len = addFrom.length; 
while (++i < len) { 
    if (addTo.indexOf(addFrom[i]) === -1) { 
    addTo.push(addFrom[i]); 
    break; 
    } 
} 

DEMO

0

Kolay peasy

for (index = 0; index < addFrom.length; ++index) { 
    if (addTo.indexOf(addFrom[index]) === -1){ 
     addTo.push(addFrom[index]); 
     break; 
    } 
} 
+0

Döngü değişkenlerinizi değiştirdiğinizden emin olun. – Andy

1
var addFrom = ["orange", "banana", "watermelon", "lemon", "peach"]; 
var addTo = ["pear", "tangerine", "grape", "orange", "blueberry"]; 

for(var i = 0; i < addFrom.length; i++){ 
    if(addTo.indexOf(addFrom[i]) === -1){ 
     addTo.push(addFrom[i]); 
     break; 
    }  
}