草庐IT

Javascript Array.prototype.filter 意外输出

背景最近在面试,有人给我做了个测试:vararray=[1,2,3];array[10]=10;alert(array.filter(n=>n===undefined));我相信这会警告一个数组有7xundefined,或者这些行中的某些内容。但是,它输出一个空数组,如长度为0的数组。问题对我来说,这是令人困惑的。谁能帮我解释为什么会这样? 最佳答案 不访问已删除或未初始化(在稀疏数组上)的项目。Array#forEachDescriptionforEach()executestheprovidedcallbackonceforea

javascript - 带动画的 CSS 灰度

我有一些CSS可以将我的图像变成灰度(带有一些用于Firefox的svg)img.grayscale{filter:grayscale(100%);-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:url(desaturate.svg#greyscale);filter:gray;-webkit-filter:grayscale(1);}但现在我想要悬停时将灰度值更改为0的动画。我有这段代码,但它什么

javascript - Backbone.js:如何通过模型 ID 数组过滤对象集合?

我有一个充满模型的Backbone.Collection;假设模型是Car。这个集合是一个非常大的Cars列表。我希望能够从列表中选择一些特定的汽车ID,然后能够从该集合中仅获取那些选定的汽车对象。我下面的代码块不工作;我确信有一种方法可以使用Backbone.js/Underscore.js来实现这一点……我对Backbone/Underscore也很陌生。CarList=Backbone.Collection.extend({model:Car,filterWithIds:function(ids){returnthis.filter(function(aCar){return_.

javascript - jQuery 如何在 IE8 及以下版本中执行 "fade"?

我只是想知道jQuery如何在不支持opacity的IE浏览器中生成淡入淡出效果?动画opacity是他们在其他浏览器(如Firefox和Chrome)中淡入淡出的方式。我研究了代码,但老实说,我找不到任何我可以理解的东西! 最佳答案 从jquery源代码,他们基本上检测是否支持不透明度,如果不支持,则使用IEsalpha过滤器if(!jQuery.support.opacity){jQuery.cssHooks.opacity={get:function(elem,computed){//IEusesfiltersforopaci

javascript - 关于 underscore.js 中的函数是异步还是同步的一些担忧

我一直在写这样的代码,它运行良好。varresult=_.filter(array,function(item){returnitem[key]===k;});...//logicusingthevariableresult但今天我突然意识到这在技术上可能是错误的,因为过滤器可以异步运行并且结果在过滤器行下方的代码中不可用。filter功能是同步实现的吗?还是我必须牢记过滤器函数异步运行?提前致谢! 最佳答案 你可以看看sourcecode[github]://Returnalltheelementsthatpassatruthte

javascript - 通过搜索嵌套对象属性来过滤对象数组

我有一个对象数组,我想通过将嵌套属性与搜索词进行比较来过滤这些对象。例如:vararray=[{category:'Business'users:[{name:'Sally'tags:[{tag:'accounting'},{tag:'marketing'},...]},{name:'Bob'tags:[{tag:'sales'},{tag:'accounting'},...]}...]},{category:'Heritage'users:[{name:'Linda'tags:[{tag:'Italy'},{tag:'Macedonia'},...]},{name:'George't

javascript - 如何在没有另一个数组javascript的情况下过滤一个数组

到目前为止,我试过了,但它返回未过滤的数组:functionfilterRangeInPlace(array,min,max){array=array.filter(item=>(item>=min&&item 最佳答案 如果在不创建另一个数组的情况下就地进行过滤实际上很重要,那么您必须采用老式的方法,使用两个索引遍历数组,并沿途复制值。每次您命中一个未通过过滤器测试的元素时,您都会增加一个索引而不是另一个索引。最后,您将数组.length重置为尾随索引:functionfilterInPlace(array,fn){letfrom

Javascript:按字符串数组过滤对象数组

我想知道是否有更优雅的方法来做到这一点。假设我有一个这样的对象数组:a=[{"id":"kpi02","value":10},{"id":"kpi02","value":30},{"id":"kpi02","value":11},{"id":"kpi02","value":33},{"id":"kpi03","value":1},{"id":"kpi03","value":0.5},{"id":"kpi04","value":0.5}]现在我想过滤id属性,以返回在另一个数组中匹配的所有对象varkpis=["kpi03","kpi02"];我想到了这个解决方案:varb=[];for

javascript - JS (ES6) : Filter array based on nested array attributes

我有一个数组,看起来像这样:constpersons=[{name:"Joe",animals:[{species:"dog",name:"Bolt"},{species:"cat",name:"Billy"},]},{name:"Bob",animals:[{species:"dog",name:"Snoopy"}]}];现在我想根据物种进行过滤。例如:每个养猫的人,都应该返回:constresult=[{name:"Joe",animals:[{species:"dog",name:"Bolt"},{species:"cat",name:"Billy"},]}];我试过这样的fil

javascript - 过滤后 SlickGrid 行 ID 发生变化

我有一个带内嵌过滤功能的slickgrid(使用DataView)。我为每行数据分配了唯一ID,并将此ID(不是行号)传递给一个函数,该函数更新UI上其他地方的div。如果我不过滤,这会很好用。但是,如果我在传递ID之前过滤该列,它会更改ID以反射(reflect)行号。它甚至会将字符串ID更改为行号。这看起来很奇怪。知道发生了什么事吗???grid_msc.onClick.subscribe(function(e,args){varcell=grid_msc.getCellFromEvent(e);varrow=cell.row;//getrow#varrow_ID=data_msc