【javascript Deferred和递归次数限制实例】教程文章相关的互联网学习教程文章

javascript – 这是一个有效的递归函数吗?【代码】

我发现库中的递归表达式很困惑.代码在这里:https://github.com/tappleby/redux-batched-subscribe/blob/master/src/index.js#L22export function batchedSubscribe(batch) {if (typeof batch !== 'function') {throw new Error('Expected batch to be a function.');}const listeners = [];function subscribe(listener) {listeners.push(listener);return function unsubscribe() {const index = listeners.indexOf(listener);li...

javascript – 函数的递归调用不会被执行【代码】

我认为d.push(f(b))永远不会被执行. 你能帮我理解这段代码在做什么吗?`function a(f, d) {if (d.length > 0) {var b = d.pop();a(f, d);d.push(f(b));} }解决方法:这称为递归.在满足某些条件之前调用自身的函数,在这种情况下条件是数组a为空.本质上,此函数将函数f和数组a作为参数.如果数组不为空,则删除最后一个索引并再次调用自身. 这将继续发生,直到数组为空,然后每个递归调用返回并移动到下一行,该行调用最初传递的函数,它弹出...

如何在JavaScript中将自下而上的递归算法转换为迭代堆栈【代码】

给出以下算法:console.log(JSON.stringify(create(0), null, 2))function create(i) {if (i == 5) returnreturn new Klass(i, create(i + 1), create(i + 1)) }function Klass(i, l, r) {this.i = ithis.l = lthis.r = r } 在递归创建所有子项之后,它最后在create(0)中创建Klass.因此它首先创建叶节点,然后将其传递给父节点等. 想知道如何使用堆栈而不递归.让我的头受伤:)我理解如何使用堆栈从上到下创建,但不是自下而上.对于自上...

javascript – 如何使用递归,休息/扩展运算符和解构来将数组中的这些数字加倍?【代码】

我最近完成了一个JavaScript挑战,要求返回一个新数组,其中初始数组的所有值都加倍.const numbers = [1, 2, 3];function double() {}除了我要包括一些ES6主题的解构和休息/传播运算符以及递归.好吧,我尽可能地完成了解决方案.这是我的解决方案:const numbers = [1, 2, 3];function double(arr){const doubledNumbers = [];for (var i = 0; i < arr.length; i ++){const dubba = arr[i];const bubba = dubba * 2;doubledNumbers.pus...

javascript – 过多的递归【代码】

在这个递归函数中,我想替换(嵌套)对象中的值.var testobj = {'user': {'name': 'Mario','password': 'itseme'} };updateObject('emesti', 'password', testobj)function updateObject(_value, _property, _object) {for(var property in _object) {if(property == _property) {_object[property] = _value;}else if(objectSize(_object) > 0) {updateObject(_value, _property, _object[property]);}}return _object };function ob...

javascript – 递归setTimeout()在背景上暂停【代码】

我有一段代码:var logo = $("#blinking-logo"); function logo_blink() {logo.fadeOut(10).delay(10).fadeIn(10).delay(20).fadeOut(10).delay(10).fadeIn(10)window.setTimeout(logo_blink, (Math.random()*(1500))+1500); } logo_blink();它所做的就是在~30秒内闪烁一次图片(为了便于调试,时间较少) 当标签处于背景状态时,Chrome会暂停此计时器的问题,然后,当返回该标签时,它会闪烁背景中错过的所有闪烁. 我想在后台暂停计时器,...

数组中嵌套对象的JavaScript递归函数【代码】

我正在尝试实现一个算法来生成一个带有分层标头的表.这些可以无限制嵌套.呈现的表标记的html示例可能如下:<table border=1><thead><tr><th colspan="6">Super one</th><th colspan="6">Super two</th></tr><tr><th colspan="3">Head one</th><th colspan="3">Head two</th><th colspan="4">Head three</th><th colspan="2">Head four</th></tr><tr><th>Sub one</th><th>Sub two</th><th>Sub three</th><th>Sub four</th><th>Sub f...

这是JavaScript中递归的一个例子吗?【代码】

我目前有点糊涂…我的任务是找到x的值,这是递归的一个例子吗?我不是要求x值的直接答案,我可以通过Overflow社区的一些指导找到它.我对a = b和b = t感到困惑,然后在哪里说返回函数. 非常感谢任何和所有的帮助!function f(a, b, c) {if (c > 1) {c = c - 1;var t = a + b;a = b;b = t;return f(a, b, c);}return a + b; } var x = f(1, 3, 4);解决方法:是的,这一行:return f(a,b,c) – 这是递归,因为它在结束时调用自己.它正在修改...

javascript – 尾调用优化递归函数【代码】

这是一个深度展平数组的函数const deepFlatten = (input) => {let result = [];input.forEach((val, index) => {if (Array.isArray(val)) {result.push(...deepFlatten(val));} else {result.push(val);}});return result; };在讨论过程中,我被告知它不具有内存效率,因为它可能会导致堆栈溢出. 我在http://2ality.com/2015/06/tail-call-optimization.html读到我可能会重写它以便它被TCO编辑. 它会是什么样子,我怎么能测量它的内存...

javascript – 如何递归更改元素的颜色【代码】

我想创建一个递归更改文本颜色的程序. 我已经创建了一个带有随机颜色代码的for(){}循环,以便尝试递归它.for(var x = 0; x > -1; x++){document.getElementById("k").style.color = '#'+(0x1000000+ (Math.random())*0xffffff).toString(16).substr(1,6)}<p id="k">Yeet</p>实际结果是颜色保持默认为黑色.我希望它每次运行(无限)时都会改变颜色.解决方法:您必须使用setInterval()方法异步运行而不阻止主执行.setInterval(() => docu...

JavaScript函数尾调用与尾递归【代码】

什么是函数尾调用和尾递归 函数尾调用与尾递归的应用 一、什么是函数的尾调用和尾递归 函数尾调用就是指函数的最后一步是调用另一个函数。 1 //函数尾调用示例一2 function foo(x){3 return g(x);4 }5 //函数尾调用示例二6 function fun(x){7 if(x > 0){8 return g(x);9 } 10 return y(x); 11 }调用最后一步和最后一行代码的区别,最后一步的代码并不一定会在最后一行,比如示例二。还有下面这一种不能叫做...

javascript中的递归setTimeout【代码】

是否可以“无限期”运行,而不会导致堆栈溢出或内存不足?function eternal(){var time = recalculateTime();doSomething();setTimeout(eternal,time); }setTimeout(eternal,200000);我没有使用setInterval,因为触发时间是可变的.解决方法:这实际上不是一个递归调用,因为第一次调用eternal()实际上已经在setTimeout()调用下一个调用之前完成.因此,它不是技术上的递归,也不会随着时间的推移而构建堆栈.它可以永久运行而不会产生任何累...

javascript中的递归函数【代码】

也许是一个微不足道的问题,我不知道为什么这个函数在进入else语句时退出循环.我需要这个函数来获取一个xml文档.function xmlToArray(element){childs= element.childNodes;if(childs.length != 1){for(var i=0;i<childs.length;i++){if(childs[i].hasChildNodes()){xmlToArray(childs[i]);}alert("exit from if");}//end foralert("exit from for");}//end ifelse{alert("do something with element");}alert("end of func"); }解决...

无论如何在javascript / jQuery中检测递归方法?【代码】

我正在研究计算代码的一小部分.我需要确定每当javascript / jQuery中出现递归时我需要终止递归. 在javascript / jQuery中有没有支持这个的api?解决方法:您可以实现自己的递归保护. jQuery中没有内置任何内容支持防止递归的内容.function myFunc(arg) {// if this function already executing and this is recursive call// then just return (don't allow recursive call)if (myFunc.in) {return;}// set flag that we're in this...

javascript – lodash以递归方式查找数组中的项目【代码】

在lodash中最简单的解决方案是通过例如’text’字段以值’Item-1-5-2’递归查找数组中的项目?const data = [{id: 1,text: 'Item-1',children: [{ id: 11, text: 'Item-1-1' },{ id: 12, text: 'Item-1-2' },{ id: 13, text: 'Item-1-3' },{ id: 14, text: 'Item-1-4' },{id: 15,text: 'Item-1-5',children: [{ id: 151, text: 'Item-1-5-1' },{ id: 152, text: 'Item-1-5-2' },{ id: 153, text: 'Item-1-5-3' },]},]},{id: 2,text...

实例 - 相关标签
JAVASCRIPT - 技术教程分类
JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语... JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript 代码规范 JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包 DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象 JavaScript 对象 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象 JavaScript Window JavaScript Window Location JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie JavaScript 库 JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结 JavaScript 对象 HTML DOM 对象 JavaScript 异步编程 javascript 全部