草庐IT

apply_filter

全部标签

javascript - IE 11 Script1002 Array.Filter(x => ...)(箭头函数)

我在IE11中收到一条错误消息,但在chrome中却没有,错误是:Script1002Syntaxerror我的代码如下varselectedRoles=vm.roles.filter(x=>x.id===role.id);错误的行号和列号提示是IE11不喜欢的箭头函数=>。但是它在Chrome和Edge中运行良好 最佳答案 ie11不支持arrowfunctions尝试varselectedRoles=vm.roles.filter(function(x){returnx.id===role.id;});

javascript - jQuery.grep 与 Array.filter 的性能对比

在question中讨论了jQuery和nativeJS如何相互执行。当然,Vanilla解决方案执行得更快,因为它不处理整个数组,我建议使用Array.filter,我非常有信心至少会比快$.grep.令人惊讶的是,在将它添加到测试中后,我得到了一个教训:TestsuiteEdgecases当然会有不同的结果。有人知道为什么$.grep应该比本地方法Arrray.filter快3倍吗?编辑:我修改了测试以使用filtershimfromMDN结果非常有趣:Chrome:即使是MDNshim也比本地方法快,jQuery遥遥领先Firefox:shim比本地方法慢一点,jQuery遥遥领

JavaScript partially applied function - 如何只绑定(bind)第二个参数?

抱歉,如果我遗漏了一些明显的东西,但我不知道如何在javascript中绑定(bind)函数的特定(第n个)参数。我学到的大部分函数式编程都来自Scala,所以我不确定这在JS中是否可行。例如,我知道我可以执行以下操作来绑定(bind)第一个参数varadd=function(a,b){returna+b;};add(1,3);//returns4varaddThree=add.bind(null,3);//this=null.a=3addThree(4);//returns7但是我怎样才能绑定(bind)第二个参数并保持第一个不变。换句话说,我怎样才能只绑定(bind)到“b”?据我

javascript - 为什么 Array.filter(Number) 在 JavaScript 中过滤掉零?

我正在尝试从数组中过滤掉所有非数字元素。我们可以在使用typeof时看到所需的输出。但是对于Number,它会过滤掉零。示例如下(在Chrome控制台中测试):[-1,0,1,2,3,4,Number(0),'','test'].filter(Number)//Whichoutputwithzerofilteredout:[-1,1,2,3,4]//0isfiltered如果我们使用typeof,它不会过滤零,这是预期的。//code[-1,0,1,2,3,4,Number(0),'','test'].filter(n=>typeofn==='number')//output[-1,0

javascript - 为什么 Array.push.apply 不起作用?

如所述here,在javascript中将数组b附加到数组a的快速方法是a.push.apply(a,b)。您会注意到对象a使用了两次。实际上,我们只需要push函数,而b.push.apply(a,b)完成完全相同的事情——apply的第一个参数提供this用于应用的函数。我认为直接使用Array对象的方法可能更有意义:Array.push.apply(a,b)。但这不起作用!我很好奇为什么不这样做,以及是否有更好的方法来实现我的目标。(应用push函数而不需要调用特定数组两次。) 最佳答案 是Array.prototype.pu

javascript - javascript 上 find() 和 filter().shift() 的区别

我最近开始放弃在我的(一些)项目中过度使用下划线/lodash,并意识到没有完全支持find浏览器中的方法。ES6方法find有什么区别?并在filter上使用.shift()结果varuser=users.find(function(){...});或varuser=users.filter(function(){...}).shift();我想对“find”方法有明显的优化(停止迭代第一场比赛),但我可以使用第二种方法获得意想不到的结果吗?我应该使用polyfill吗?反而?为什么? 最佳答案 是的,除了明显(和明显)的开销之外

javascript - 为什么 console.log.apply() 抛出非法调用错误?

这个问题在这里已经有了答案:TypeError:IllegalInvocationonconsole.log.apply(1个回答)关闭9年前。当我在Chrome18beta中执行以下代码时出现错误:console.log.apply(this,['message']);TypeError:Illegalinvocation.在Firefox10中,它按预期工作。在IE9中,我收到错误:对象不支持“应用”属性或方法。我猜这与浏览器如何实现console.log有关。为什么它在Firefox中有效,但在Chrome和IE中无效?我希望有人能阐明造成这种情况的原因及其后果。这里是anexe

javascript - 类型 'filter' 上不存在属性 'Observable<Event>'

您好,我正在使用带有路由器3.0的Angular2final。我想过滤从this.router.events发出的事件我想做什么:import'rxjs/operator/filter';//...this.router.events.filter((event:Event)=>eventinstanceofNavigationEnd).subscribe(x=>console.log(x))event可以是instanceOfNavigationEnd,NavigationStart或RoutesRecognized但我只想要NavigationEnd.但是我得到一个错误Proper

javascript - Angular2 IE11 无法获取未定义或空引用的属性 'apply'

将我的angular2包升级到以下版本后出现以下错误:@angular/common":"^2.3.1@angular/compiler":"^2.3.1@angular/core":"^2.3.1@angular/forms":"^2.3.1@angular/http":"^2.3.1@angular/platform-b​​rowser":"^2.3.1"@angular/platform-b​​rowser-dynamic":"^2.3.1@angular/platform-server":"^2.3.1@angular/router":"^3.3.1错误:无法获取未定义或空引用

javascript - 在 Javascript 中使用 call 和 apply 的上下文?

任何人都可以解释一下在Javascript中使用call和apply方法的上下文吗?为什么要使用call和apply而不是直接调用一个函数? 最佳答案 您使用call或apply当您想将不同的this值传递给函数时。从本质上讲,这意味着您想要执行一个函数,就好像它是一个特定对象的方法一样。两者之间的唯一区别在于,call需要以逗号分隔的参数,而apply需要数组中的参数。来自Mozilla'sapplypage的示例,其中构造函数被链接:functionProduct(name,price){this.name=name;this.