【问题标题】:filter array with callback function带有回调函数的过滤器数组
【发布时间】:2020-11-14 08:23:01
【问题描述】:

我在使用这个函数时遇到了一些问题 搜索程序名称可以限制实现回调函数的输出数量。希望你能帮我弄清楚

function filteritem(str,num,callback){
  let result = name.filter( name => name.indexOf(str) !== -1 )
   result.forEach(element => element.length == num)
  callback(result);
}
function showFilter(wrd){
  console.log(wrd);
}
console.log(filteritem("a",3,showFilter))

我的输出是:

[
  'Abigail',  'Alexandra',
  'Amanda',   'Angela',
  'Bella',    'Carol',
  'Caroline', 'Carolyn',
  'Diana',    'Elizabeth',
  'Ella',     'Faith',
  'Olivia'
]
undefined

我想要的输出是:

["Abigail", "Alexandra", "Alison"];

【问题讨论】:

    标签: javascript arrays callback


    【解决方案1】:

    const name = [
      "Abigail",
      "Alexandra",
      "Amanda",
      "Angela",
      "Bella",
      "Carol",
      "Caroline",
      "Carolyn",
      "Diana",
      "Elizabeth",
      "Ella",
      "Faith",
      "Olivia",
    ];
    function filteritem(str, num, callback) {
      let result = name.filter((name) => name.indexOf(str) !== -1);
      result = result.slice(0, 3);
      callback(result);
    }
    function showFilter(wrd) {
      console.log(wrd);
    }
    filteritem("a", 3, showFilter);

    【讨论】:

      【解决方案2】:

      您希望通过forEach 通话实现什么目标?您正在遍历结果数组,实际上什么都不做(您的函数返回一个布尔值:如果长度 == 3,则返回 true,否则返回 false)。

      您要做的是返回结果的前 3 个元素:

      callback(result.slice(0, 3));

      【讨论】:

        猜你喜欢
        • 2021-12-18
        • 1970-01-01
        • 1970-01-01
        • 2020-09-05
        • 1970-01-01
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多