代码之家  ›  专栏  ›  技术社区  ›  bp123

按类型筛选对象数组

  •  0
  • bp123  · 技术社区  · 6 年前

    我试图让它工作,这样当我只包含了搜索字符串的一部分时,它就会返回对象。现在只有在 val === 'Brady' 我希望它能工作,如果 val === 'B' val === 'Ba' 等。

    const data = [{firstName: 'Brady',lastName: 'Smith'},{firstName: 'Jason',lastName: 'Brady'},{firstName: 'Michael',lastName: 'Bolten'}];
    
    const filteredData = data.filter(data=>
         Object.values(data).some(val=> val === 'Brady')
    )
    
    console.log(filteredData)
    
    3 回复  |  直到 6 年前
        1
  •  1
  •   Eddie    6 年前

    你可以用 includes 检查字符串是否为子字符串。

    这个 includes() 方法确定是否可以找到一个字符串 在另一个字符串中,根据需要返回true或false。

    const data = [{
      firstName: 'Brady',
      lastName: 'Smith'
    }, {
      firstName: 'Jason',
      lastName: 'Brady'
    }, {
      firstName: 'Michael',
      lastName: 'Bolten'
    }];
    
    const search = "Br";
    const filteredData = data.filter(data =>
      Object.values(data).some(val => {
        console.log(typeof val);
        return val.includes(search);
      })
    )
    
    console.log(filteredData)
        2
  •  0
  •   Andrew Kovalenko    6 年前

    如果你想要 从…开始 逻辑-您可以尝试:

    const filteredData = data.filter(data=>
     Object.values(data).some(val=> val.startWith(<your input value here>))
    )
    
        3
  •  0
  •   Wang    6 年前

    可以使用string includes()方法

    const filteredData = data.filter(data=>
      Object.values(data).some(val=> val.includes("B") );
    )