【问题标题】:how to filter array with includes an array [duplicate]如何过滤包含数组的数组[重复]
【发布时间】:2022-01-30 12:43:39
【问题描述】:

这是我的第一个数组

let specificCoin = ["Ethereum","Bitcoin"]

这是第二个

 let coins =[
    {
        name: 'Bitcoin',
    },
    {
        name: 'Ethereum',
    },
    {
        name: 'Solana',
    },
    {
        name: 'BinanceCoin',
    }]

我想知道如何过滤包含在 specificCoin 数组中的硬币数组 类似的东西:

coins.filter(a => { return a.name.includes(specificCoin) })

结果:[{name: 'Ethereum',},{name: 'Bitcoin'}]

我也想知道是否有两个相同的对象值我如何才能同时获得它们, 使用此代码

let dataAssest = data.map(b => b.assestSymbol.toLowerCase())
    let filtered = coins.filter(coin => dataAssest.includes(coin.symbol))

结果图片: Wrong result

不过这样不行,希望大家给个好的解决办法:)

【问题讨论】:

  • 你需要检查specificCoin是否包含a.name

标签: javascript arrays object filter include


【解决方案1】:

其他方式

let specificCoin = ['ETH', 'BTC'].map(symbol => symbol.toLowerCase())

let coins = [{ id: 'Bitcoin', symbol: 'btc' }, { id: 'Ethereum', symbol: 'eth' }, { id: 'Solana', symbol: 'sol'}, { id: 'BinanceCoin', symbol: 'bnb'  }];

const filtered = coins.filter(coin => specificCoin.includes(coin.symbol.toLowerCase()))

console.log(filtered)

【讨论】:

  • 如果我在数组中有相同的对象值,我怎么能同时包含两者?
  • 不确定你的意思
  • let coins =[{name: 'Bitcoin'},{name: 'Ethereum',},{name:'Ethereum',}] 使用该数组您的代码返回给我[{name: 'Bitcoin',},{name: 'Ethereum'}],过滤后我怎样才能同时获得“以太坊”。像这样的结果:[{name: 'Bitcoin',},{name: 'Ethereum'}, {name: 'Ethereum'}]
  • 试试我的代码 - 它可以工作
  • 我试过了,如果有相同的对象,它不会返回给我两次,我认为如果它已经包含,则需要:再次包含,但我不知道如何使它正确
猜你喜欢
  • 2017-10-28
  • 2018-02-28
  • 2021-12-12
  • 2023-02-22
  • 2019-07-30
  • 2019-08-15
  • 2022-11-28
  • 2020-05-15
  • 1970-01-01
相关资源
最近更新 更多