Using .filter to compare two arrays and return values that aren't matched

后端 未结 5 1255
Happy的楠姐
Happy的楠姐 2021-02-03 14:46

I\'m having some issues comparing the elements of two arrays and filtering out matching values. I only want to return array elements that are NOT included within wordsToRe

相关标签:
5条回答
  • 2021-02-03 15:15

    use filter and includes to perform this

    var fullWordList = ['1','2','3','4','5'];
    var wordsToRemove = ['1','2','3'];
    
    var newList = fullWordList.filter(function(word){
       return !wordsToRemove.includes(word);
    })
    console.log(newList);

    0 讨论(0)
  • 2021-02-03 15:22

    That is pretty easy to do using Array.prototype.filter:

    var fullWordList = ['1','2','3','4','5'];
    var wordsToRemove = ['1','2','3'];
    
    var filteredKeywords = fullWordList.filter(
      word=>!wordsToRemove.includes(word)
    //or
    //word=>wordsToRemove.indexOf(word)<0
    );
    
    0 讨论(0)
  • 2021-02-03 15:23

    forEach on fullWordList is not required, use filter on fullWordList and indexOf() in your function in filter() to check if a number exists in wordsToRemove or not.

    var fullWordList = ['1','2','3','4','5'];
    var wordsToRemove = ['1','2','3'];
    
    var newList = fullWordList.filter(function(x){
       return wordsToRemove.indexOf(x) < 0;
    })
    console.log(newList);

    0 讨论(0)
  • 2021-02-03 15:29

    Perhaps you could try

    var fullWordList = ['1','2','3','4','5'];
    var wordsToRemove = ['1','2','3'];
    var match = [];
    
    for(let word of fullWordList){
        if(!wordsToRemove.find((val) => val == word))match.push(word);
    }
    
    0 讨论(0)
  • 2021-02-03 15:31

    You can use filter and includes to achieve this:

    var fullWordList = ['1','2','3','4','5'];
    var wordsToRemove = ['1','2','3'];
    
    var filteredKeywords = fullWordList.filter((word) => !wordsToRemove.includes(word));
    
    console.log(filteredKeywords);

    0 讨论(0)
提交回复
热议问题