【发布时间】:2020-10-14 12:40:56
【问题描述】:
我有一个包含 7 个项目的数组。我想以与原始数组中相同的顺序将一些项目移动到不同的索引。到目前为止,我已将代码 sn-p 粘贴到我尝试过的任何内容上。
let originalArray = ['a','b','c','d','e','f','g'];
let itemsToBeMoved = ['c','f','e'];
let newIndexToBeMoved = 4;
//expected result is ['a','b','d','c','e','f','g'];
let movableItemsIndex = [];
movableItemsIndex.push(originalArray.indexOf('c'));
movableItemsIndex.push(originalArray.indexOf('f'));
movableItemsIndex.push(originalArray.indexOf('e'));
//To be Moved items has to be sorted as in originalArray
movableItemsIndex.sort();
let itemsToBeMovedSorted = [originalArray[movableItemsIndex[0]],originalArray[movableItemsIndex[1]],originalArray[movableItemsIndex[2]]];
//Removing items before inserting to items to new position
while(movableItemsIndex.length) {
originalArray.splice(movableItemsIndex.pop(), 1);
}
let newUpdatedArray = [...originalArray],j=0;
for(let i = newIndexToBeMoved ;i < originalArray.length ; i++){
newUpdatedArray[i] = itemsToBeMovedSorted[j];
j++;
}
console.log(newUpdatedArray);
【问题讨论】:
-
splice他们出去,splice他们又回来了 - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
什么定义了插入索引,假设 before 该索引的某些元素将被删除(从而更改其索引)?在搜索东西的上下文中,给出要重新插入移动元素的元素的 value 是否更有意义?
-
问题是,因为我必须拼接必须移动的项目。原始 Array 中项目的索引发生更改。现在我必须一个接一个地插入项目的索引在拼接后无效。您可以在提供的 sn -p i 中看到预期的结果。
标签: javascript html jquery arrays