【问题标题】:Javascript array filter by year [duplicate]Javascript数组过滤器[重复]
【发布时间】:2017-07-19 10:47:36
【问题描述】:

我正在尝试过滤数组

我不断取回完整的数组,而不仅仅是过滤后的元素。我怎样才能让它过滤元素?

       const inventors = [
      { first: 'Albert', last: 'Einstein', year: 1879, passed: 1955 },
      { first: 'Isaac', last: 'Newton', year: 1643, passed: 1727 },
      { first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642 },
      { first: 'Marie', last: 'Curie', year: 1867, passed: 1934 },
      { first: 'Johannes', last: 'Kepler', year: 1571, passed: 1630 },
      { first: 'Nicolaus', last: 'Copernicus', year: 1473, passed: 1543 },
      { first: 'Max', last: 'Planck', year: 1858, passed: 1947 },
      { first: 'Katherine', last: 'Blodgett', year: 1898, passed: 1979 },
      { first: 'Ada', last: 'Lovelace', year: 1815, passed: 1852 },
      { first: 'Sarah E.', last: 'Goode', year: 1855, passed: 1905 },
      { first: 'Lise', last: 'Meitner', year: 1878, passed: 1968 },
      { first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909 }
    ];



    function isOldEnough(inventor) {
      if(inventor.year >= 1500 && inventor.year <= 1600){
          return inventor;
      }
    }

    inventors.filter(isOldEnough)
    console.log(inventors);

【问题讨论】:

  • 您需要将结果保留在某些东西中 - 它不会作用于数组本身

标签: javascript


【解决方案1】:

filter 不会更改数组,而是返回一个新数组,其中仅包含与 creteria 匹配的项目。使用这个:

var oldEnough = inventors.filter(isOldEnough);

请让过滤功能更干净:

function isOldEnough(inventor) {
  return inventor.year >= 1500 && inventor.year <= 1600;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 2017-03-25
    • 2018-01-18
    • 2023-01-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    相关资源
    最近更新 更多