草庐IT

递归实现

全部标签

javascript - 无法在 javascript/Polymer 中调用我的递归函数

我有一个搜索文件夹树并找到所选文件夹的父文件夹的功能。这是函数。getParentFolder:function(searchroot,childFolder){searchroot.subfolders.forEach(function(folder){if(folder.key==childFolder.key){returnsearchroot;}else{if(folder.subfolders){returnthis.getParentFolder(folder,childFolder);}}});}当我用this.getParentFolder(rootFolder,chi

javascript - 如何在 JS 中使用递归在嵌套数组中查找对象

考虑以下深度嵌套数组:constarray=[{id:1,name:"bla",children:[{id:23,name:"bla",children:[{id:88,name:"bla"},{id:99,name:"bla"}]},{id:43,name:"bla"},{id:45,name:"bla",children:[{id:43,name:"bla"},{id:46,name:"bla"}]}]},{id:12,name:"bla",children:[{id:232,name:"bla",children:[{id:848,name:"bla"},{id:959,name

javascript - 实现 JavaScript API 包装器

谁能推荐一种可用于编写JavaScriptAPIwrapper的模式,其中多个实现之间没有共享代码?这个想法是为客户端消费者提供一个单一的包装API,用于在运行时确定的许多可能的API之一。API调用可以是对应用程序环境中已有的对象/库的调用,也可以是Web服务调用。以下伪代码是我考虑过的两种方法:整体解决方案varapiWrapper={init:function(){//*runtime*contextofwhichAPItocallthis.context=App.getContext();},getName:function(){switch(context){casea:re

javascript - 良好的 "background-size: cover"回退/垫片/技巧以实现 DIV 上的跨浏览器兼容性?

所以我使用background-size:cover来实现背景图像的预期效果,该背景图像可以缩放到它所应用的任何div大小,同时保持纵横比。为什么要使用这种方法?根据相关WordPress帖子中设置为图像的内容,使用内联CSS动态地通过PHP将图像应用为背景。所以一切都很好,但是是否有任何回退以确保它至少在IE8中工作?可能有一些Javascript修复?已经试过backstretch和supersized,但无济于事,因为它们仅将图像应用于页面背景。您可以在实际中看到它overhere. 最佳答案 在IE8或更低版本中,将前景图像

javascript - ColdFusion 的 listFindNoCase 函数在 Javascript 中最快的实现是什么?

我已经被ColdFusion的列表宠坏了,遇到过一两次在Javascript中出现逗号分隔列表的情况。是否有等效于listFindNoCase('string','list')的方法,或在Javascript中实现它的高效方法?哦,它应该能够处理带逗号的列表项,例如:(“史密斯,约翰”,“母鹿,简”,“等......”)这才是真正让我失望的地方。 最佳答案 仅供引用:jList的实现:https://github.com/davidwaterston/jList尽管如此,这将无法满足您“它应该能够处理带逗号的列表项”的要求listF

javascript - 为什么递归比 JavaScript 求和函数的平面 for 循环更快?

我正在使用一种可转换为JavaScript的语言工作。为了避免一些堆栈溢出,我通过将某些函数转换为for循环来应用尾调用优化。令人惊讶的是转换并不比递归版本快。http://jsperf.com/sldjf-lajf-lkajf-lkfadsj-f/5递归版本:(functionrecur(a0,s0){returna0==0?s0:recur(a0-1,a0+s0)})(10000,0)尾调用优化后:ret3=void0;a1=10000;s2=0;(function(){while(!ret3){a1==0?ret3=s2:(a1_tmp$=a1-1,s2_tmp$=a1+s2,a

javascript - 使用 Node JS 递归获取 DynamoDB 查询中的所有项目

这可能更像是一个JS/Async问题,而不是DynamoDB特定问题-我想在Amazon的DynamoDB中使用散列键获取表中的所有项目。该表中还有范围键。我正在使用NodeJS库,它是AWSDynamoDBRESTAPI的包装器。-Node-DynamoDBDynamoDB每次查询仅返回1MB的结果。要获取结果提醒,它包括lastEvaluatedKey。我们可以将其包含在另一个查询中以获取另外1MB的结果等等......我在编写递归异步函数时遇到困难,该函数应该按顺序访问服务,直到我可以取回所有结果。(对于我的用例,表永远不会超过10MB,查询不会失控)一些用于说明的伪代码:ddb

javascript - 在 react 中更新状态时递归太多

在此示例中,当我尝试在componentDidUpdate生命周期回调期间更新状态时,出现了toomuchrecursion错误。我应该如何更新状态?importReactfrom'react';classNotesContainerextendsReact.Component{constructor(props){super(props);this.state={listOfShoppingItems:[]};}componentDidUpdate(nextProps,nextState){letnewShoppingItems=this.calculateShoppingItems

javascript - 实现 Promise.all 和 Promise.settle 的混合

我需要实现Promise.all的一个版本,它接受一组promise并像往常一样返回结果,此外还结算所有promise,很像Promise.settle在Bluebird库中执行此操作,但我不能使用Bluebird,并且必须仅依赖于标准promise协议(protocol)。实现起来会不会非常复杂?还是在这里询问如何实现它的想法太多了?我真的希望不会,所以我想问,如果有人以前实现过它,请分享如何正确实现的想法。这样做的前提是能够在调用完成后需要执行commit/rollback的数据库事务中使用它,并且不能松动promises仍在尝试在事务调用之外解决。编辑:提供给另一个问题的链接非常

javascript - 如何解决递归异步 promise ?

我在玩弄promises,我在处理异步递归promise时遇到了麻烦。场景是一位运动员开始跑100米,我需要定期检查他们是否跑完了,一旦他们跑完了,打印他们的时间。编辑以澄清:在现实世界中,运动员在服务器上运行。startRunning涉及对服务器进行ajax调用。checkIsFinished还涉及对服务器进行ajax调用。下面的代码试图模仿它。代码中的时间和距离是硬编码的,目的是让事情尽可能简单。抱歉没有说清楚。结束编辑我希望能够写出以下内容startRunning().then(checkIsFinished).then(printTime).catch(handleError)