草庐IT

可变数组

全部标签

javascript - 根据正则表达式匹配选择数组中的对象

如何使用javascript仅返回数组中满足特定条件的对象?例如,如果我有['apple','avocado','banana','cherry']并且只想输出以字母'A'开头的水果。编辑:下面采用SeanKinsey的函数,并尝试通过传入数组和字母来使其更灵活:函数filterABC(arr,abc){vararr=arr;varfiltered=(function(){varfiltered=[],i=arr.length;while(i--){if('/^'+abc+'/'.test(arr[i])){filtered.push(arr[i]);}}returnfiltered;

javascript - 这是 'subclass' javascript 数组的合理方法吗?

我意识到,严格来说,这不是数组类型的子类化,但这会以人们预期的方式工作,还是我仍然会遇到.length等问题?如果可以选择正常的子类化,有什么缺点是我不会有的吗?functionVector(){varvector=[];vector.sum=function(){sum=0.0;for(i=0;i 最佳答案 我会像这样将数组包装在适当的向量类型中:window.Vector=functionVector(){this.data=[];}Vector.prototype.push=functionpush(){Array.proto

javascript - console.log(array) 显示与迭代数组和显示单个元素不同的数组内容

我有以下代码:console.log("start");for(vari=0;i这给了我以下输出:[16:34:41.171]start[16:34:41.171]0=0[16:34:41.172]1=168[16:34:41.172]2=171[16:34:41.172][0,168,171,139][16:34:41.172]end也就是说,它在迭代数组时不显示139元素,但在输出整个数组时console.log确实打印了它。为什么?(我稍后会修改数组,console.log是否以某种方式延迟到我更改数组之后?请注意,改变语句的顺序,将consoel.log(array)直接放在开

javascript - 计算数组的位/字节大小

我有一个Javascript数组,它有很多子数组。计算数组包含多少位/字节的最佳/最简单方法是什么?我要将数组发送到我的PHP服务器,它只能有5kB大。是否有针对此的本地方法?我对位不是很熟悉。如果我理解正确的话,1个字符适合8b/1B(尽管它显然取决于编码)。最好的方法是遍历所有数组并计算字符数吗? 最佳答案 你可以这样做:(为了得到真正好的估计)varg=JSON.stringify(myBigNestedarray).replace(/[\[\]\,\"]/g,'');//stringifyandremoveall"strin

javascript - 为所有元素解构数组内的对象属性

在最基本的形式中,有一个对象数组:letarr=[{val:"a"},{val:"b"}];如何使用解构,只获取值['a','b']。获取第一个值很容易:let[{val:res}]=arr;//rescontains'a'获取数组内的所有值可以用rest运算符来完成:let[...res]=arr;//rescontainsallobjects结合这些,我希望能够使用:let[...{val:res}]=arr;//undefined,expectedall'val's(['a','b'])以上返回未定义(在FF中测试)。一些进一步的测试似乎表明,在使用对象解构时添加rest运算符也

javascript - 如何获取数组的每第三个元素

这个问题在这里已经有了答案:Javascript:takeeverynthElementofArray(6个答案)关闭6年前。我有一个数组,我想只返回每三个元素作为一个新数组(从0开始)。例如:letarr=[1,2,3,4,5,6,7,8,9];letnewArr=[1,4,7];这是我目前这样做的方式:letnewArr=[];for(letx=0;x有没有办法用arr.map做到这一点?有没有更简单的方法来做到这一点?

javascript - 将项目添加到数组时 ng-list 输入不更新

我遇到了一个奇怪的问题,即在向模型添加项目时使用ng-list的输入没有更新。我创建了一个fiddle来更好地说明这个问题:http://jsfiddle.net/rtZY3///Doesn'tupdateng-listinput$scope.tags.push(tag);//Doesupdateng-listinputvartags=angular.copy($scope.tags);tags.push(tag);$scope.tags=tags;这看起来不像是预期的行为,尤其是因为$scope.tags正在正确更新,如所示上面jsFiddle中的标记。

javascript - 在 react 状态下替换数组中的对象

这个问题可能有点属于“最佳实践”问题,但请耐心等待。这是我的状态的一部分:this.state={typeElements:{headers:[{name:"h1",size:70,lineHeight:1.25,kearning:0,marginAfter:0},{name:"h2",size:70,lineHeight:1.25,kearning:0,marginAfter:0},{name:"h3",size:70,lineHeight:1.25,kearning:0,marginAfter:0}...我需要做的是替换header数组中给定索引处的对象。我不知道如何使用this.

javascript - array.length 为零,但数组中有元素

这个问题在这里已经有了答案:IsChrome’sJavaScriptconsolelazyaboutevaluatingobjects?(7个答案)关闭4年前。我目前正在练习使用Electron,但我对javascript还很陌生,我遇到了一个让我完全困惑的问题。我有以下代码:functiongetPaths(){vardirPath=document.getElementById("mdir").innerHTML;varfilePaths=[];fs.readdir(dirPath,function(err,dir){for(vari=0,l=dir.length;i它应该查看由d

javascript - 为什么将整数与长度为 1 的数组进行比较返回 true 而将 false 与长度为 2 或更大的数组进行比较?

为什么将0与长度为1的数组进行比较返回true而对于长度为2或更大的数组返回false?例如,vara=[]//undefined0 最佳答案 基本上你会得到一个隐式类型转换,首先是toString,TheArrayobjectoverridesthetoStringmethodofObject.ForArrayobjects,thetoStringmethodjoinsthearrayandreturnsonestringcontainingeacharrayelementseparatedbycommas.JavaScriptc