草庐IT

iterator

全部标签

javascript - ES6 使用 for..of 反向迭代数组,我是否遗漏了规范中的内容?

在ES6中我们现在有iterators和for..of迭代它们。我们有一些内置的arrays;特别是keys,values和entries.这些方法允许人们执行通常会执行的大部分迭代。但是,反向迭代呢?这也是一项非常常见的任务,我在spec中没有看到任何内容。专门为它?还是我错过了?好的,我们有Array.prototype.reverse但我不一定想就地反转一个大数组,然后在完成后再次反转它。我也不想使用Array.prototype.slice制作一个临时的浅拷贝并反转它只是为了迭代。所以我看了一下generators并提出了这些可行的解决方案。(function(){'usest

javascript - Javascript 对象如何通过 for...of 语句变得可迭代?

这个问题在这里已经有了答案:UsingObjectsinForOfLoops(16个答案)关闭6年前。我想设置options[Symbol.iterator]属性,以便迭代我使用for...of语句创建的简单对象:options={male:'John',female:'Gina',rel:'Love'};for(letpofoptions){console.log(`Property${p}`);};但是这段代码给我以下错误:array.html:72UncaughtTypeError:options[Symbol.iterator]isnotafunction如何在上面的简单对象上

javascript - Mustache.js 中数组元素的索引

这是我想在Mustache.js中做的,但没有看到如何使用文档。varview={items:['Mercury','Venus','Earth','Mars']};vartemplate="{{#items}}{{i}}-{{.}}{{/items}}";varhtml=Mustache.to_html(template,view);期望的输出:0-Mercury1-Venus2-Earth3-Mars 最佳答案 正在寻找快速清洁解决方案?简单地添加一个index函数vardata={items:[{name:Aliasghar,

javascript - ngFor + ngModel : How can I unshift values to the array I am iterating?

我有一个元素数组,用户不仅可以编辑,还可以添加和删除完整的数组元素。这很好用,除非我尝试将一个值添加到数组的开头(例如使用unshift)。这是一个证明我的问题的测试:import{Component}from'@angular/core';import{ComponentFixture,TestBed}from'@angular/core/testing';import{FormsModule}from'@angular/forms';@Component({template:``})classTestComponent{values:{value:string}[]=[{value

javascript - react - Redux 应用程序 : "Invalid attempt to spread non-iterable instance" Issue

Atthebeginning,thatsampleappwasworkingproperly.IcouldseedatathatIinputtedoverbrowserpageanddatabase.Atnow,Icanseethedataonlyviathedatabase,thebrowserdoesn'tshowdataandgettingthiserroradditionally:"Invalidattempttospreadnon-iterableinstance".有示例代码:projectActions.jsimport{FETCH_BOOK,CREATE_BOOK,DE

javascript - MVC : Iterating a Viewbag array in javascript

目标是从ViewBag.Array获取数据到Javascript数组。数据是在Controller中计算的,所以我不能直接从数据库中获取它。我需要数据来使用jqplot绘制图表。代码:for(i=0;i问题是@ViewBag.Array[i]中的“'i'doesnotexistinthecurrentcontext”,但在jScriptArray[i]中没有问题>。感谢您的帮助。 最佳答案 您可以尝试以下方法:vararray=@Html.Raw(Json.Encode(@ViewBag.Array));for(vari=0;i

javascript - 使用下划线 groupby 按颜色对一系列汽车进行分组

我有一系列汽车。car={make:"nissan",model:"sunny",colour:"red"};如何使用underscore.js按颜色对数组进行分组?我尝试了一些组合,但我不太确定如何指定我的迭代器条件:varcarsGroupedByColor=_.groupBy(cars,false,colour);varcarsGroupedByColor=_.groupBy(vars,false,function(cars){returncars[colour];};它们每次都返回数组中的所有内容。 最佳答案 您不需要fal

JavaScript 迭代器类

您是否知道一个JavaScript库,它为集合(无论是Arrays还是一些抽象的Enumerable)实现了一个通用的Iterator类,具有全套的特性,比如GoogleCommon或ApacheCommons?编辑:Enumerable#each不是Iterator类。我正在寻找一个迭代器,它可以让我们写出如下内容:variterator=newIterator(myCollection);for(varelement=iterator.next();iterator.hasNext();element=iterator.next()){//iterator}编辑:mamoo提醒我们

javascript - *[Symbol.iterator] 在这种情况下的含义是什么

我在网上找到了一些代码。我已将原始代码压缩成这个小摘录,运行时会在控制台上打印1-20。varNumbersFromOne={*[Symbol.iterator](){for(leti=1;;++i)yieldi;}};vartake=function*(numberToTake,iterable){letremaining=numberToTake;for(letvalueofNumbersFromOne){if(remaining--现在,我明白take()是一个GeneratorFunction。当take()被调用时,它被赋予一个迭代器。代码“...printToTwenty”

javascript - 如何迭代 WeakMap?

JavaScriptWeakMap不允许您通过设计获得key、长度或大小。是否有可能以某种方式循环访问条目?如果不是..Chrome控制台是如何做到这一点的? 最佳答案 Isitpossibletoneverthelessloopoverentriesinsomeway?不,正如您所说,WeakMap的内容在设计上是不可访问的,并且没有可迭代性。Ifnot…howdoestheChromeconsoledothis?控制台使用JS引擎的调试API,它允许访问对象的内部结构(也可以访问状态、包装原语等)等等。