代码之家  ›  专栏  ›  技术社区  ›  Muzi Jack

使用ES6数组函数筛选多个项

  •  1
  • Muzi Jack  · 技术社区  · 6 年前

    最好的过滤方法是什么 约翰 布瑞恩 詹姆斯

    const names = ["John", "Mary", "Max", "Brian", "James"]
    const filterdNames = names.filter((value) => {
      return value !== 'John' && 'Brian' && 'James';
    });
    console.log(filterdNames)
    5 回复  |  直到 6 年前
        1
  •  3
  •   Dan Gamble    6 年前
    const names = ["John", "Mary", "Max", "Brian", "James"]
    const filterdNames = names.filter((value) => {
      return ["John", "Brian", "James"].includes(value) === false;
    });
    

    Array.includes

        2
  •  2
  •   CertainPerformance    6 年前

    先创建一个要过滤掉的名称数组,然后就可以测试 includes 在上面:

    const names = ["John", "Mary", "Max", "Brian", "James"];
    const filterOut = ['John', 'Brian', 'James'];
    const filterdNames = names.filter(value => !filterOut.includes(value));
    console.log(filterdNames)
        3
  •  2
  •   Paul Fitzgerald    6 年前

    value !== 对于每种情况。

    const names = ["John", "Mary", "Max", "Brian", "James"]
    const filterdNames = names.filter((value) => {
      return value !== 'John' && value !==  'Brian' && value !==  'James';
    });
    console.log(filterdNames)
        4
  •  1
  •   Yashar Panahi    6 年前
    const names = ["John", "Mary", "Max", "Brian", "James"]
    const filterdNames = names.filter((value) => {
      return value != "John" && value != 'Brian' && value != 'James';
    });
    console.log(filterdNames)
    
        5
  •  0
  •   Joey Gough    6 年前

    && 是逻辑与运算符。所以在你的过滤器里,你规定这个名字不等于约翰,不等于真。你想说,如果名字不是约翰,名字不是布莱恩,名字不是詹姆斯。应该是这样的。

    const names = ["John", "Mary", "Max", "Brian", "James"]
    const filterdNames = names.filter((value) => {
      return value !== 'John' && value !== "Brian" && value !== "James"
    });
    console.log(filterdNames)