【问题标题】:ES6 how to get source code for filter( ) methodES6 如何获取 filter() 方法的源代码
【发布时间】:2017-11-16 09:56:43
【问题描述】:

到目前为止,我已经尝试重现 filter 方法:

function filtre(...[T,x,y]){
let tabPersF = [];
for (let pers of T) {
    if (x(...[pers,y])) {
      tabPersF.push( pers ); 
     }

}
  return tabPersF;
}

怎么样?

【问题讨论】:

  • 这行不通?!长得丑?!你的问题是什么?
  • 检查polyfill on MDN 以获得正确的实施。请注意,filter 的实现方式取决于您的浏览器。
  • function 不能是参数名称,因为它是一个关键字,而 funcion 是“幸运的”一个错字。 array2 未定义,不存在 puts 方法。你看过控制台了吗?
  • 你的问题是?
  • 我已经尝试过自己创建它以进行培训,但它似乎不能很好地工作,因为例如当我与有性行为的人一起处理一组对象时它不起作用,年龄,姓名我想过滤年龄> 19 或类似的女性

标签: javascript ecmascript-6


【解决方案1】:

所以我试图重现我得到的方法过滤器,我知道 这不好。

此代码存在多个问题

  • array2 未初始化
  • array2 不是 array,什么是 puts
  • function关键字作为参数

做起来

function filter(array, func) {
  let array2 = [];
  for ( var counter = 0; counter < array.length; counter++) {       
    if (func(array[counter], counter, array )) {
      array2.push(array[counter]);
    }
  }
  return array2;
}

console.log( filter( [1,2,3], function(s){ return s>1 } ) );

console.log( filter( ["132","322","23433"], function(s){ return s.length>3 } ) );

var arr = [ {name: "asdasd", age: 10}, {name: "asdasd2", age: 20} ];

console.log( filter( arr , function(s){ return s.age>19 } ) );

【讨论】:

  • func(v) ... !!
  • @JonasW。我的错。更正了。
  • @JonasW。 func(v) 工作正常。我已经举了两个例子。为什么之前提到过?
  • 当我使用一组对象时,它不起作用
  • @gurvinder 我的意思是func(v, i, array)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-08
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多