and*_*541 6 javascript arrays algorithm
我有一个对象数组.然后我想添加另一个对象并将其粘贴到我的数组中已经存在的对象中.这意味着新对象的索引应该比我已经存在的对象大1,并且元素索引的其余部分应该加1.
例如:
我试图将我的数组拆分为两个从index = 2开始,推送我的新元素,然后再次加入,但我的代码不能正常工作.
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);
}
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我有一个看起来像这样的数组:
myArray = [
{name: "not selected"},
{name: "not selected"},
{name: "selected"},
{name: "not selected"},
{name: "not selected"},
{name: "not selected"},
]
Run Code Online (Sandbox Code Playgroud)
我想在那里放一个外部元素来使它看起来像这样:
myArray = [
{name: "not selected"},
{name: "not selected"},
{name: "selected"},
{name: "new element"}, // inserted
{name: "not selected"},
{name: "not selected"},
{name: "not selected"},
]
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,那么您遇到的问题是如何在数组中插入和移动元素。您可以使用splice方法执行此操作,该方法具有用于插入元素的可选参数:
这是您需要的示例:
var myArray = [
{name: "not selected"},
{name: "not selected"},
{name: "selected"},
{name: "not selected"},
{name: "not selected"},
{name: "not selected"}
];
myArray.splice(3, 0, {
name: "new element"
});
console.log(myArray);
Run Code Online (Sandbox Code Playgroud)
您可以Array#splice
在将元素插入数组后使用并获取索引。
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);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
247 次 |
最近记录: |