草庐IT

可变数组

全部标签

javascript - 如何从 JSON 数组中删除元素

我是nodejs和mongodb的新手。我的问题是我有以下类型的json{_id:199,name:'RaeKohout',scores:[{type:'exam',score:82.11742562118049},{type:'quiz',score:49.61295450928224},{type:'homework',score:28.86823689842918},{type:'homework',score:5.861613903793295}]}在这里我想比较“作业”类型的分数并删除分数最低的作业。为了解决这个问题我写了一些代码varlow='';for(vari=0;il

javascript - 数组长度返回 0

谁能帮忙解释一下为什么length返回0?非常感谢您!varerrors=[];errors['']="MondayMorningslotalreadytaken.Wouldyouliketoreplaceit?";console.log(errors);document.write(errors.length); 最佳答案 只有数字索引会影响数组的.length。允许使用其他命名属性,但它们不是Array对象的典型用途。通过使用"",您在对象上创建了一个非数字属性。您可以像这样访问它:errors[""];但是您无法使用典型的Ar

javascript - Mobx:Observable 数组显示不正确

我想了解如何在Mobx中使用可观察数组。我很难弄清楚这是为什么:letentities=observable([]);entities[0]="foo";autorun(()=>{console.log(entities);});写道:[$mobx:Object]0:(...)1:(...)2:(...)3:(...)4:(...)5:(...)6:(...)7:(...)8:(...)9:(...)10:(...)11:(...)12:(...)13:(...)14:(...)15:(...)16:(...)17:(...)...999:(...)而不是经典数组?

javascript - 是否有不可变版本的 Object.assign?

我想在JavaScript中混合两个对象:leta={x:1,y:2,z:3};letb={x:10,y:20};letc=Object.assign(a,b);这给出了c的正确值:Object{x:10,y:20,z:3}但是现在a也被修改了!Object{x:10,y:20,z:3}有没有办法将a分配给b到一个新对象中? 最佳答案 assign的第一个参数是目标。所以它会被改变。如果您不想更改任何源,您可以简单地为目标传递一个空对象:leta={x:1,y:2,z:3};letb={x:10,y:20};letc=Object.

javascript - 如何在 javascript 中按元素从另一个数组中减去一个数组

如果我有一个数组A=[1,4,3,2]和B=[0,2,1,2]我想返回一个值为[1,2,2,0]的新数组(A-B)。在JavaScript中执行此操作的最有效方法是什么? 最佳答案 constA=[1,4,3,2]constB=[0,2,1,2]console.log(A.filter(n=>!B.includes(n))) 关于javascript-如何在javascript中按元素从另一个数组中减去一个数组,我们在StackOverflow上找到一个类似的问题:

javascript - 优化 javascript 代码以在数组中找到 3 个最大的元素及其索引?

我需要此javascript代码的更优化版本来查找数组中的3个最大值。我需要获得最大数字的索引。有没有其他更简单的方法来解决这个问题?varmaxIndex=newArray();varmaxPoints=newArray();varscoreByPattern=newArray(93,17,56,91,98,33,9,38,55,78,29,81,60);functionfindLargest3(){maxPoints[0]=0;maxPoints[1]=0;maxPoints[2]=0;for(i=0;imaxPoints[0]){maxPoints[0]=scoreByPatte

javascript - 是否可以在 for 循环中引用匿名数组?

for(varnamein['dog','cat','cow']){alert(name);}这里的name返回数组的索引,但我不能引用它,因为它是匿名的。我知道我可以在循环外声明它,但在这里我想问一下是否有一种方法可以直接引用没有索引的名称。 最佳答案 ...不。没有,至少没有本地循环。但是,有ES5的forEach:['dog','cat','cow'].forEach(function(value,key){//dostuff});实际上是一样的。支持mostlyeverywhere,除了在旧的IE中:类似es5-shim的东

javascript - 在 Javascript 中获取带有拆分的数组的最后一个元素

我试图在使用javascript对字符串进行拆分后获取最后一个数组项。varstr="Watch-The-Crap-456".split('-')[this.length];console.log(str);​​​//wantittoconsolelog456,nowitconsolesWATCHwhichisinarray[0]我尝试执行[this.length-1]来获取最后一个数组项,但它给了我未定义的,我知道你们中的一些人可能会说创建另一个变量来存储数组,但是看看我们是否可以缩短内容很有趣。 最佳答案 怎么样:"Watch-

javascript - 将枚举转换为值数组(将所有 JSON 值放入数组中)

我用这个方法EnumsinJavaScript?在我们的代码中创建枚举..所以vartypes={"WHITE":0,"BLACK":1}现在的问题是,当我想在任何地方创建验证时,我必须这样做;model.validate("typesColumn",[types.WHITE,types.BLACK]);现在有没有一种方法可以将类型中的值简单地转换为数组,这样我就不必列出枚举的所有值?model.validate("typesColumn",types.ValuesInArray]);编辑:我创建了一个非常简单的枚举库来生成简单的枚举npm--save-devinstallsimple

Javascript:将变量与值数组进行比较

在javascript中,我正在执行以下工作正常。if(myVar==25||myVar==26||myVar==27||myVar==28){//dosomething}我怎样才能缩短它?类似下面的内容。if(myVarIN('25','26','27','28')){//dosomething}或if(myVar.indexOf("25","26","27","28")>-1)){//dosomething} 最佳答案 您可以使用Array.indexOf(),它返回可以在数组中找到给定元素的第一个索引,如果不存在则返回-1。使