javascript change elements in array
本问题已经有最佳答案,请猛点这里访问。
我有一组对象。然后我想添加另一个对象,并将其粘贴到数组中已经存在的对象上。这意味着新对象的索引应该比我已经存在的对象大一个,元素的其余索引应该增加一个。
例如:
我试图将数组分成两部分,从index=2开始,推送我的新元素,然后一次又一次地连接,但是我的代码不太好用。
1 2 3 4 5 6 7 8 9 10 11 | for (var i in myArray) { if (myArray[i].name === inheritedRate.inherit) { var tempArr = []; for (var n = i; n < myArray.length; n++) { tempArr.push($scope.myArray[n]); myArray.splice(n, 1); } myArray.push(inheritedRate); myArray.concat(tempArr); } } |
换句话说,我有一个像这样的数组:
1 2 3 4 5 6 7 8 | myArray = [ {name:"not selected"}, {name:"not selected"}, {name:"selected"}, {name:"not selected"}, {name:"not selected"}, {name:"not selected"}, ] |
号
我想在这里放置一个外部元素,使它看起来像这样:
1 2 3 4 5 6 7 8 9 | myArray = [ {name:"not selected"}, {name:"not selected"}, {name:"selected"}, {name:"new element"}, // inserted {name:"not selected"}, {name:"not selected"}, {name:"not selected"}, ] |
如果我理解的正确,那么问题就在于如何在数组中插入和移动元素。您可以使用拼接方法进行此操作,拼接方法具有用于插入元素的可选参数:
下面是您的示例所需的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var myArray = [ {name:"not selected <div class="suo-content">[collapse title=""]<ul><li>这是假设你事先知道指数(这是一个公平的假设)。但是,对于未来不需要的游客来说,这里有EDOCX1[0]</li></ul>[/collapse]</div><hr> <p> You could use <wyn>Array#splice</wyn> and take an index after the element gets inserted to the array. </p> <p> [cc lang="javascript"]var array = [{ name:"not selected" }, { name:"not selected" }, { name:"selected" }, { name:"not selected" }, { name:"not selected" }, { name:"not selected" }], index = 2, item = { name:"new element" }; array.splice(index + 1, 0, item); console.log(array); |
1 | .as-console-wrapper { max-height: 100% !important; top: 0; } |
号