草庐IT

可变数组

全部标签

javascript - node.js 数组实际上是 HashMap 吗?

令我惊讶的是,这段代码实际上可以在node.js中运行:vararr=newArray();//alsoworks:vararr=[];arr[0]=123;arr['abc']=456;arr;//node.js:[123,abc:456],chrome:[123]我一直认为数组按顺序存储其对象,只能通过整数键访问,就像C++中的std::vector一样。然而,在这里它的行为就像一张map或一个对象。更令人困惑的是,相同的代码在chrome中按预期工作,返回一个包含单个条目123的数组。我认为node.js和chromejavascript使用相同的内部引擎V8。这是怎么回事?

JavaScript 根据来自另一个的数据过滤数组

我有一个数组对象:[{id:1,name:'Pedro'},{id:2,name:'Miko'},{id:3,name:'Bear'},{id:4,name:'Teddy'},{id:5,name:'Mouse'}]我有一个ID为[1,3,5]的数组,如何过滤数组对象以仅保留具有第二个ID的记录? 最佳答案 如果Array.includes()受支持,您可以将其与Array.filter()一起使用获取元素:constarray=[{id:1,name:'Pedro'},{id:2,name:'Miko'},{id:3,name:'

javascript - 通过对象键将数组项移到前面

所以我有一个对象数组;[{"foo":2,"bar":"test"},{"foo":19,"bar":"value"},{"foo":7,"bar":"temp"}]我需要将具有特定值foo的对象移动到数组的开头。值始终在对象中,但不能保证对象一定在数组中。例如,在运行moveToFront(19);之后,我会得到以下内容:[{"foo":19,"bar":"value"},{"foo":2,"bar":"test"},{"foo":7,"bar":"temp"}]我该怎么做? 最佳答案 这应该是相当简单的,你搜索你的数组直到找到你

javascript - 对象数组的自定义排序顺序

我知道我们可以定义json对象数组的自定义排序函数。但是,如果顺序既不是desc也不是asc怎么办。例如,假设我的数组看起来像:[{name:'u'},{name:'n'},{name:'a'},{name:'n',}]输出应该是这样的:[{name:'n'},{name:'n'},{name:'a'},{name:'u',}]其中所有以n开头的名称首先排序,然后才是其余的。我尝试了以下自定义排序功能:_sortByName(a,b){if(a.name==='n'){return1;}elseif(b.name==='n'){return1;}elseif(a.nameb.name)

javascript - 如何合并两个 JSON 对象数组 - 在 Javascript/jQuery 中删除重复项并保留顺序?

jsfiddle链接:http://jsfiddle.net/vN6fn/1/假设我有这两个对象:varobj1={data:[{id:1,comment:"comment1"},{id:2,comment:"comment2"},{id:3,comment:"comment3"}]}varobj2={data:[{id:2,comment:"comment2"},{id:3,comment:"comment3"},{id:4,comment:"comment4"}]}最终对象应该是这样的:varfinal={data:[{id:1,comment:"comment1"},{id:2,

javascript - 替换对象数组中的元素

我想替换数组中的整个对象。http://jsfiddle.net/CWSbJ/vararray=[{name:"name1"},{name:"name2"}];varelement=array[0];element={name:"name3"};alert(array[0].name);在这段代码中,我希望输出name3,为什么我不能像这样替换数组中的整个对象?这样做的好方法是什么? 最佳答案 正确的做法是array[0]={name:"name3"};您现有的代码无法按预期工作,因为您正在使用对第一个元素进行引用*vareleme

javascript - 数组行为困惑

这个问题在这里已经有了答案:Whydoes[5,6,8,7][1,2]=8inJavaScript?(3个答案)关闭7年前。在一次编码测试中,我最近遇到了一个问题,要求我找出将在控制台中打印的内容。问题在下面。我不明白下面的代码将如何被理解和执行。需要帮助vararr=["a","b","c","d"][1,2,3];console.log(arr);这个arr定义到底是什么意思?

javascript - 在元素连续出现后获取 JavaScript 数组元素

我有一个像这样的JavaScript数组:varmyArray=['a','x','b','x','x','p','y','x','x','b','x','x'];我只想获取数组中特定元素连续出现2次之后的那些元素。即在上面的数组中,我想获取所有'x','x'之后的元素所以我的输出应该是:'p''b'我有一个解决方案:vararrLength=myArray.length;for(vari=0;i这满足了我的需求,但它不是那么通用。例如。如果我必须检查3个后续事件,那么我必须再次在if中为myArray[i+2]=='x'添加一个条件,依此类推。谁能提供更好的方法来获取元素?

javascript - 在 IE 中将函数添加到 Array.prototype 会导致它作为元素被插入每个数组

我在项目的开头将以下polyfill添加到Array:if(!Array.prototype.find){Array.prototype.find=function(predicate){if(this===null){thrownewTypeError('Array.prototype.findcalledonnullorundefined');}if(typeofpredicate!=='function'){thrownewTypeError('predicatemustbeafunction');}varlist=Object(this);varlength=list.leng

javascript - 如何在没有弹出的情况下获取数组的最后一项?

这个问题在这里已经有了答案:SelectinglastelementinJavaScriptarray[duplicate](13个答案)关闭6年前。我需要与以下相同的结果:vararray=[1,2,3,5,7];vartop=array.pop();问题是pop从数组中删除元素。为了解决这个问题,我添加了另一行:array.push(top);但这让我很烦,到现在我在这个项目中做了四五次。有没有更好的办法?