草庐IT

可变数组

全部标签

javascript - Firebase - 使用附加数据填充属性/数组

下面的可观察对象创建了一个事件对象数组。eventsRef:AngularFireList;events:Observable;this.eventsRef=db.list('events');this.events=this.eventsRef.snapshotChanges().map(changes=>{returnchanges.map(c=>({key:c.payload.key,...c.payload.val()}));});我需要从其他数据库列表向this.events添加额外的数据。所以我需要每个事件对象都包含guest人数和数据eventsFilters。我不知道该

reactjs - Firestore 按数组的字段值查询

我正在尝试运行一个简单的查询,我在其中搜索包含对象数组中的值的文档。例如,看看我的数据库结构:我想运行与此类似的查询:db.collection('identites').where("partyMembers","array-contains",{name:"JohnTravolta"})实现此目标的正确方法是什么,甚至可以使用Firestore吗?谢谢。 最佳答案 正如Frank在他的回答中所解释的那样,使用数组包含查询存储在数组中的对象的特定属性是不可能的。但是,有一个可能的解决方法:实际上可以查询整个对象,如下所示,在您的情

javascript - 如何在 Jasmine.js 中使用带有 toHaveBeenCalledWith 的 spy 和可变数组?

我有一些代码以数组作为单个参数调用回调函数。调用回调后,代码更改数组内容。它类似于这段代码:functionmyCode(callback){varsomeArray=[1,2,3,4];callback(someArray);//changesomeArrayinarbitrarywayssomeArray.splice(2);...}现在,我想验证是否使用正确的数组内容调用回调。使用Jasmine.js我会这样写我的规范:describe("Mycode",function(){varcallback;beforeEach(function(){callback=jasmine.c

javascript - 在 IE 10/11 中使用数组作为 indexedDB keyPaths

我有一个数组作为我使用indexedDB的键路径,它在Chrome和Firefox上运行良好,但是当我尝试使用IE添加/放置时,它给我一个DataError。varrequest=window.indexedDB.open("MyTestDatabase");request.onsuccess=function(event){vardatabase=event.target.result;vartransaction=database.transaction(["document"],"readwrite");varobjectStore=transaction.objectStore

javascript - 如何在 JavaScript 中有效地使用共享缓冲区的类型化数组?

在我的代码中,我有一个包含一系列像素坐标的对象。此对象的性能至关重要,因为它用于无法始终缓存输出的60fps游戏。经过实验和基准测试,3D数组被证明是使用无类型数组时最快的实现方式:varPixelCollection=function(){this.pixels=[];};PixelCollection.prototype={add:function(x,y){varpixels=this.pixels;if(pixels[y]){pixels[y].push(x);}else{pixels[y]=[x];}},each:function(callback){varpixels=th

javascript - 如何遍历JS对象和里面的所有数组和对象,与它的副本进行比较?

我在Angular中有一个selectedItem对象,它包含其他对象和数组。我使用JSON技巧创建了一个深拷贝:$scope.editableItem=JSON.parse(JSON.stringify($scope.selectedItem))然后我在输入中使用editableItem模型,更改其中的一些值。selectedItem没有改变。然后我想通过PATCH发送所有所做的更改,但不发送未更改的字段。因此,我需要从未更改的selectedItem中相同的所有字段中删除editableItem。如何有效地做到这一点?我在考虑使用Underscore递归遍历对象,但我真的很想知道在

javascript - 在 React 中使用 $splice(来自 immutability-helper)而不是 filter 从数组中删除项目有什么优势?

我正在使用immutability-helper对状态数据进行CRUD操作,想知道我是否应该始终使用$splice来删除数据,还是可以使用filter(因为它没有破坏性)?例如,假设我有一个对象数组:todos=[{id:1,body:"eat"},{id:2,body:"drink"},{id:3,body:"sleep"},{id:4,body:"run"}]给定一个项目ID,我可以通过两种方式删除它:一个。找到它的index并使用$splice:index=todos.findIndex((t)=>{return(t.id===id)});newtodos=update(todo

javascript - 将困惑数组与字符串匹配的函数

有谁知道我如何将一堆困惑的字母与一个单词匹配,例如,一些匹配的函数一个数组,例如["a","c","a","e","c"];给一个词“ace”并给我1或者如果不是-1就像indexOf或InArray但对于一个困惑的词。我用一个有据可查的例子制作了一个jsfiddle请注意,我会将字母数组与30000-50000个单词的任意位置进行比较。https://jsfiddle.net/AlexanderMitrakis/89dchpt8/1/this.gameletters=[];//ArrayofGameletters.//e.g.["P","E","H","E","U","I","S",

javascript - 如何在 RxJS 中将可变长度数据包流转换为固定长度数据包?

我是RxJS的新手。给定以下流['foo','bar','b','az12','3','4567']我想将其转换为固定大小的数据包(比如3个字节)+余数['foo','ba','rb','az','123','456','7']在现实生活中,它实际上是一个二进制数据缓冲区。我想知道惯用的RxJS方法是什么。我发现的简单方法是:from(['foo','bar','b','az12','3','4567']).pipe(Rx.concatMap(v=>from(v)),Rx.bufferCount(3),Rx.map(v=>v.join(''))).subscribe(v=>consol

javascript - 如何使用 JScript 或 JavaScript 创建数组文字?

在HJavaScript中有Arraytype,但我看不到构造文字的方法,例如,将JS转换为[1,2,3]。我不想创建一个newArray()然后将项目插入其中,如果我不需要的话。理想情况下,我在使用类似array::[t]->Arrayt的函数。我可能会使用JConst来实现array,但这似乎是对一些应该是直截了当的东西的hack。我也可以使用上面的创建和推送方法来实现array,不过这也不是很好。这里是插入的array;不太好。array::[Expa]->JS(JArraya)arrayxs=doarr 最佳答案 这个问题是