2016-03-31 5 views
-4

最初の配列(destroyer関数の最初の引数)と1つ以上の引数が提供されます。これらの引数と同じ値を持つすべての要素を初期配列から削除します。Bonfire Seek and Destroy- Freecodecampチャレンジ

Iこれらの指示をしました:

  • 駆逐艦は、([1、2、3、1、2、3]、2、3)[1,1]を返す必要があります。
  • 駆逐艦([1,2,3,5,1,2,3]、2、3)は[1、5、1]を返すべきです。
  • 駆逐艦([3、5、1、2、2]、2、3、5)は[1]を返すべきです。
  • 駆逐艦([2,3,2,3]、2、3)は[]を返すべきです。 ( "" tree "、" hamburger "、53)、" tree "、53)は["ハンバーガー "]を返します。

私が見つけたコード:

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

私の質問:

  1. あなたは、英語でこのコードをしてください説明できますか?
  2. 上記のチャレンジのショートカットコードを教えてもらえますか?お願いします。
+0

コードが – thangngoc89

+0

@RayonDabreをやって、これらの機能が何であるかを調べるためにMDNに行く、自分自身を説明し、彼らがどのなしで否決与えたbecouce、私はここでdownvotersを憎みます役に立ったと言っています。私はdownvotersがなぜ私を憎んでいるのか知りたいですか? –

答えて

0

フィルタ機能を使用してこの課題を実行しましたが、配列の値とフィルタリングする値を比較するために 'indexOf'も使用することをお勧めします。 `` ``

function destroyer(arr) { 
    // Remove all the values 
    var temp = []; 
    for (var i = 1; i < arguments.length; i++) { 
     temp.push(arguments[i]); 
     arr = arguments[0].filter(function(value) { 
      return (value !== temp[i - 1]) ; 
     }); 
    } 
    return arr; 
} 
destroyer([1, 2, 3, 1, 2, 3], 2, 3); 

`` ``