草庐IT

C++迭代器(iterator)

全部标签

javascript - 如何迭代对象原型(prototype)的属性

我有一些代码:varobj=function(){};//functionalobjectobj.foo='foo';obj.prototype.bar='bar';for(varpropinobj){console.log(prop);}令我惊讶的是,所有记录的都是foo。我希望for循环也遍历obj原型(prototype)的属性(即bar),因为我没有检查hasOwnProperty。我在这里错过了什么?是否也有一种惯用的方法来遍历原型(prototype)中的所有属性?我在Chrome和IE10中对此进行了测试。提前致谢。 最佳答案

javascript - for循环(每次迭代都会产生一个 promise )完成后如何返回单个 promise ?

我的promise返回代码有问题,我有一个函数getTagQuotes,它包含一个for循环,它可以多次调用API以将数据返回到数组中。我的代码是如何开始的://Iftherearetags,thenwaitforpromisehere:if(tags.length>0){//SettingpromisevartogetTagQuotes:varpromise=getTagQuotes(tags).then(function(){console.log('promise=',promise);//Thisarrayshouldcontain1-3tags:console.log('tw

javascript - 为什么 Javascript `iterator.next()` 返回一个对象?

帮助!在用C#编程了很长一段时间后,我开始喜欢上Javascript,但我一直在学习喜欢可迭代协议(protocol)!为什么Javascript采用protocol需要为每次迭代创建一个新对象?为什么有next()返回一个属性为done的新对象和value而不是采用像C#IEnumerable这样的协议(protocol)和IEnumerator它以需要两次调用为代价不分配任何对象(一次调用moveNext以查看迭代是否完成,第二次调用current以获取值)?是否有底层优化跳过由next()返回的对象的分配??很难想象,因为iterable不知道返回后如何使用该对象...生成器似乎

javascript - 将循环的每次迭代延迟一定时间

JSFiddle:http://jsfiddle.net/KH8Gf/27/代码:$(document).ready(function(){$('#expand').click(function(){varqty=$('#qty').val();for(varcounter=0;counternewtext');}});});如何将循环的每次迭代延迟特定时间?我尝试了以下失败:setTimeout(function(){$('#child').html($('#child').html()+'newtext');},500);和$('#child').delay(500).html($

javascript - 如何实现 Symbol.iterator?

我正在尝试创建Set的子类,因为我不能简单地从它扩展,所以我包装了它的功能。我正在尝试实现Symbol.iterator方法,但Flow没有。这是我的代码:/*@flow*/classCSet{_set:Set;[Symbol.iterator]():Iterator{returnthis._set[Symbol.iterator];}}vara:CSet=newCSet();for(varbofa){}core.js:309:5,29:property@@iteratorPropertynotfoundintest.js:2:7,10:CSettest.js:4:2,6:2:comp

javascript - 迭代 Backbone 集合

我已经为Users设置了一个Backbone集合,当我执行fetch方法时,我按照以下行取回了一个JSON对象:{"users":[{...},{...},...],size:number}来自服务器。令人困惑的是,当我执行下面的代码时,我得到的不是每个user对象,而是一个“子”对象,它有两个属性:users和大小;谁能帮我理解为什么?谢谢。display:function(){this.collection.each(function(user){console.log("main",user);});} 最佳答案 在集合上添加

javascript - 如何在 underscore.js 中的 _.each 循环的每次迭代中添加延迟?

如何在_.each循环的每次迭代中添加延迟,以将内部函数的调用间隔1秒?_.each(this.rows,function(row,i){row.setChars(msg[i]?msg[i]:'');}); 最佳答案 你不需要额外的IIFE_.each(this.rows,function(row,i){setTimeout(function(){row.setChars(msg[i]?msg[i]:'');},1000*i);});因为您没有在明确的for循环中执行此操作。 关于jav

javascript - 如何迭代 HTMLCollection?

这个问题在这里已经有了答案:WhydoesjQueryoraDOMmethodsuchasgetElementByIdnotfindtheelement?(6个答案)IsChrome’sJavaScriptconsolelazyaboutevaluatingobjects?(7个答案)UsespreadoperatoronNodeListinTypescript(1个回答)关闭4年前。我的HTML中有一些类为node-item的元素,我使用以下方法在我的组件中访问它们:letnodeItems=document.getElementsByClassName('node-item');当

javascript - 迭代一个对象数组,对具有相同索引的值求和,并返回一个新的对象数组

我有一个对象数组,像这样:constdata=[//array1[{x:1},{y:2},{z:3}],[{x:1},{y:2},{z:3}],[{x:1},{y:2},{z:3}]],[//array2[{x:1},{y:2},{z:3}],[{x:1},{y:2},{z:3}],[{x:1},{y:2},{z:3}]]需要完成的是将array1中的x与array2中的x相加相同的指数。y和z也是如此。最终结果应该是包含求和值的新对象数组。像这样:[[{totalXOne:2},{totalYOne:4},{totalZOne:6}],[{totalXTwo:2},{totalYTw

Javascript:删除正在使用 'for' 迭代的对象的属性是否安全

我正在做这样的事情:varmyObj={a:1,b:2,c:3,d:4};for(varkeyinmyObj){if(someCondition){delete(myObj[key]);}}它在我试过的示例中工作得很好,但我不确定它在某些场景/浏览器中是否会出现意外行为。修改正在迭代的对象是否可以? 最佳答案 Section12.6.4解释for..in是根据“下一个属性”定义的:LetPbethenameofthenextpropertyofobjwhose[[Enumerable]]attributeistrue.Ifthere