2016-04-14 25 views
1
Bunlar başarmaya çalışıyorum ne için tam talimatlar verilmiştir

ile diziden değerleri tekrarlanan Çıkarma:birden argümanlar

Sen birine peşinden bir başlangıç ​​dizisi (destroyer fonksiyonunda ilk argüman) ile sağlanacaktır veya daha fazla argüman. Bu argümanlar ile aynı değere sahip başlangıç ​​dizisindeki tüm öğeleri kaldırın.

Bu

Ben çözümdür:

function destroyer(arr) {  
    var args = Array.prototype.slice.call(arguments); 
    args.slice(0,1); 
    return arr.filter(function(elements) { 
    return args.indexOf(element) === -1; 
    }); 
} 

istenen sayıda argümanı olabileceğini unutmayın (sadece 2 ya da 3).
Sahip olduğum çözüm çalışmıyor. Şu anki çözümümün nesi var ve bir açıklama ile nasıl düzeltebilirim?

+0

İş görüşmesi? :) –

+0

örnek girişler ve çıkışlar verebilir misiniz? – gurvinder372

+0

@DmitriPavlutin iş görüşmesi değil. Kişisel ilgi için sadece çevrimiçi eğitim. – victoria

cevap

1

Çözümünüz neredeyse çalışıyor. sorunlar:

  • args.slice(0,1); dizisi değiştirmez

    (yine de bu yöntem, sadece, birinci elemanla bir dizi döner).
  • 'un ilk elemanı kaldırmak için args.shift() kullanın, geri bildirim filtresinde function(element) olmalıdır.

bir çalışma çözeltisi:

function destroyer(arr) {  
    var args = Array.prototype.slice.call(arguments); 
    args.shift(); 
    return arr.filter(function(element) { 
    return args.indexOf(element) === -1; 
    }); 
} 

console.log(destroyer([1, 2, 3, 5, 5], 1, 5)); // prints [2, 3] 

kontrol çalışma demo.