草庐IT

可变数组

全部标签

Javascript:如何使用 promise 迭代数组?

LIVEDEMO给定以下函数:functionisGood(number){vardefer=$q.defer();$timeout(function(){if(){defer.resolve();}else{defer.reject();}},100);returndefer.promise;}和一组数字(例如[3,9,17,26,89]),我想找到第一个“好”的数字。我希望能够做到这一点:vararr=[3,9,17,26,89];findGoodNumber(arr).then(function(goodNumber){console.log('Goodnumberfound:'

javascript - jQuery:数组中元素的索引,其中谓词

我有一个对象数组。每个对象都有一个ID属性。我想在具有特定ID的对象的数组中找到索引。在jQuery中有什么优雅而简单的方法可以做到这一点吗? 最佳答案 See[`Array.filter`][1]tofilteranarraywithacallbackfunction.Eachobjectinthearraywillbepassedtothecallbackfunctiononebyone.Thecallbackfunctionmustreturn`true`ifthevalueistobeincluded,orfalseifno

javascript - 使用 jQuery 将 HTML 表中的整列数据提取到数组中

无法找到关于如何实现此目的的清晰且最近的解释。jQuery是否有一种直接的方法来从id="table1"的HTML表中获取整个第三列,并使用每个数组元素的一个单元格值填充一个数组。我对jQuery比较陌生,还没有完全探索它的功能。jQuery的一些快捷方式让我感到惊讶,所以我认为在这里提问可能比继续将代码混合在一起却看不到任何结果更明智。 最佳答案 要从第3列的所有元素构建一个数组,您可以使用以下代码varcolArray=$('#table1td:nth-child(3)').map(function(){return$(this

javascript - 如何在可观察数组中 knockout 可观察对象

我想实现一个可观察数组,并且在该数组内应该有可观察对象(JS对象)。在View中,我正在迭代这个数组并获取对象并显示对象属性。假设有一个对象,如下所示,{"name":"john","age":21,"address":"No25"}想象一下可观察数组由上面的对象组成。然后我想更改特定对象的单个属性(例如名称),并且需要在View中查看更改。我如何使用knockout来做到这一点?谢谢。 最佳答案 如果您在viewModel中设置用户并将其映射到knockoutmapping你应该得到想要的结果。像这样的东西:myObservabl

javascript - 如何在 Typescript 中创建一个空字符串数组?

我想要一个包含字符串错误消息的数组。这是我想出的代码:varerrors:[string];errors=[];Object.keys(response.data.modelState).forEach(function(key){errors.push.apply(errors,response.data.modelState[key]);});我尝试了一些不同的方法来将typescript定义添加到变量错误,但似乎没有一种方法适用于这种情况。第一个定义工作正常但是当我推送值时我需要推送到一个数组并且当我设置时:errors=[];然后它给我一条错误信息:SeverityCodeDe

javascript - 平面数组到多维数组 (JavaScript)

我有以下数组:varsampleArray=["CONTAINER","BODY","NEWS","TITLE"];我想要以下输出:vardesiredOutput=[{"CONTAINER":[{"BODY":[{"NEWS":[{"TITLE":[]}]}]}]}];如何在JavaScript中实现这一点?已经尝试过递归循环,但它不起作用,给我未定义。dataChange(sampleArray);functiondataChange(data){for(vari=0;i谢谢 最佳答案 这会在一行中完成您的要求,并且没有其他变量

javascript - javascript数组的快速分组

我有一个包含几千个字符串的数组['7/21/2011','7/21/2011','7/21/2011','7/20/2011',etc]我目前正在运行此代码以按字符串分组并获取最大分组值:varmax=0;vargroup={};arr.map(function(value){if(group[value]){group[value]++;}else{group[value]=1;}max=Math.max(max,group[value]);});是否有任何改进可以使此代码运行得更快?编辑:结果在:http://jsperf.com/javascript-array-grouping

Javascript ES6 - 映射多个数组

JavaScript6中是否有允许映射多个数组的功能?类似zipper的东西:varmyFn=function(a,b){console.log(a,b);}vararr1=['a','b','c'];vararr2=[1,2,3];arr1.map(myFn,arr2);//imaginarysyntax.//prints://a1//b2//c3 最佳答案 正如其他答案所指出的,这通常称为zip。它可以实现为:letzipped=arr1.map((x,i)=>[x,arr2[i]]);或者作为一个函数,基本上:letzip=(

javascript - 在 Javascript 中搜索字符串数组时可以使用通配符吗?

给定一个字符串数组:x=["banana","apple","orange"]是否有用于执行通配符搜索的内置快捷方式?即,也许x.indexOf("*na*")//returnsindexofastringcontainingthesubstringna 最佳答案 扩展Pim的回答,正确的方法(没有jQuery)是这样的:Array.prototype.find=function(match){returnthis.filter(function(item){returntypeofitem=='string'&&item.inde

javascript - 从排序的整数数组创建字符串范围

我有以下排序的数字数组(它们可以重复,例如21)leta=[1,2,3,4,7,8,12,15,21,21,22,23]并希望获得以下(已排序)具有范围的字符串数组letr=["1-4","7-8","12","15","21-23"]对于连续的数字a,a+1,a+2,...,a+n=bw必须创建字符串"a-b"例如对于6,7,8我们想要得到"6-8",对于"单独”的数字,我们只想得到那个数字,例如对于上面示例中的12,我们得到“12”。这是我的尝试,但我坚持了下来(并且头疼)leta=[1,2,3,6,7,8,12,15,21,21,22,23];letright=a[0];letl