2016-12-15 3 views
0

次のコードは、指定された配列をとり、その後に続くすべての引数をフィルタリングする必要があります。たとえば、以下のコードは[1、1]を返します。配列からの引数のフィルタリング

function destroyer(arr) { 
    var args= []; 
     args.push(arguments[0]); 
    var realArgs = args[0]; 
    var filteredArr=[]; 

    function removeIt (val){ 
    return val != ; 
    } 


    filteredArr= realArgs.filter(removeIt); 

    return filteredArr; 
} 

destroyer([1, 2, 3, 1, 2, 3], 2, 3); 

私はフィルタ機能を理解できません。何とかブール値を使用する必要がありますか?

+0

待ち...関数内の関数が実際に動作しますか?助けが必要なものを明記してください。期待される結果は何ですか?また、与えられた結果は何ですか? –

答えて

0

関数の引数にアクセスする場合は、argumentsではなく、argsを使用する必要があります。 javascriptにはまだ組み込み関数がないので、フィルタリング部分は単純ではないので、自分で実装する必要があります(つまり、includes関数です)。

function destroyer(arr) { 

    var arr = arguments[0]; 
    var toFilter = []; 
    for (var i = 0; i < arguments.length; i++) 
    toFilter.push(arguments[i]); 

    function removeIt (arr, numsToFilter){ 
    var array = arr.slice(); // make sure to copy the array in order not to modify the original 
    for (var i = 0; i < array.length; i++) { 
     if (includes(numsToFilter, array[i])) { 
      delete array[i]; 
     }  
     } 
     return array; 
    } 

    function includes(arr, k) { 
     for(var i=0; i < arr.length; i++){ 
     if(arr[i] === k){ 
      return true; 
     } 
     } 
     return false; 
    }  

    return removeIt(arr, toFilter); 
} 

destroyer([1, 2, 3, 1, 2, 3], 2, 3); 

Running the code-example

0

あなたは配列に変換するarguments objectArray#sliceを呼び出すことができます。インデックス1からスライスします(arrはスキップします)。次にArray#filterarrの配列を使用できます。各繰り返しで、Array#indexOfを使用して、項目がtoRemove配列にあるかどうかを確認します。 toRemoveにあるアイテムは除外されます。注 - Array#filterは新しい配列を返します。

function destroyer(arr) { 
 
    // convert all the arguments but arr into array 
 
    var toRemove = [].slice.call(arguments, 1); 
 

 
    // filter the original array 
 
    return arr.filter(function removeIt(val){ 
 
    // keep all vals that are not in the toRemove array 
 
    return toRemove.indexOf(val) === -1; 
 
    }); 
 
} 
 

 
var result = destroyer([1, 2, 3, 1, 2, 3], 2, 3); 
 

 
console.log(result);

関連する問題