【问题标题】:JavaScript how to remove elements from one array which contains in second [duplicate]JavaScript如何从第二个包含的一个数组中删除元素[重复]
【发布时间】:2018-09-06 21:30:08
【问题描述】:

我误解了如何删除数组中与另一个数组具有匹配元素的元素。

例子:

const items = ['first', 'second', 'third']
const secondItems = ['first', 'second']

预期:

console.log(items) | 'third'
console.log(secondItems) | 'first', 'second

希望有一些例子来实现这一点。 用两个 forEach 或 filter 和检查语句尝试了很多次,但我总是得到错误的结果。

【问题讨论】:

标签: javascript arrays


【解决方案1】:

只需使用Array.prototype.filter()方法:

const items = ['first', 'second', 'third']
const secondItems = ['first', 'second']

console.log(items.filter(i => !secondItems.includes(i)))
console.log(secondItems.filter(i => items.includes(i)))

不过,我并不完全理解你的这种期望:

console.log(secondItems) | 'first', 'second

您能在 cmets 中详细说明吗?

【讨论】:

    【解决方案2】:

    这可以通过以下方式解决:

    const items = ['first', 'second', 'third'];
    const secondItems = ['first', 'second'];
    
    
    const filteredBySecondItems = items.filter(function(item) {
    
      // For item in items array, check if there is a match
      // in secondItems. If there is no match, allow it
      // to be included in the returned list
      return secondItems.indexOf(item) === -1 
    
    })
    
    console.log(filteredBySecondItems) // [ 'third' ]

    【讨论】:

      【解决方案3】:
      items.filter(x => !secondItems.includes(x))
      

      刚刚在浏览器控制台试了下,可以了。

      【讨论】:

        猜你喜欢
        • 2017-12-15
        • 1970-01-01
        • 2020-08-16
        • 2011-08-17
        • 2021-03-03
        • 2014-06-07
        • 2019-12-29
        • 2017-02-25
        • 2011-05-20
        相关资源
        最近更新 更多