我需要将数组中的选定项移动到数组的开头。可以说我有5个项目的数组
[{"A", "B", "C", "D", "E"}].
现在,假设我选择索引2(将为C
),并且需要将C
(索引2
)移动到数组的开头。最后,数组应显示如下:
[{"C", "A", "B", "D", "E"}].
答案 0 :(得分:0)
解决方案::您可以使用嵌套的Array.Splice()
方法来解决问题。我将其作为数组的扩展方法。
Array.prototype.move = function(from, to) {
this.splice(to, 0, this.splice(from, 1)[0]);
};
说明:内部的splice()
基本上是说要拿走要移动的项目,将其从数组中删除,然后在外部的{{1 }}。外面的splice()
表示要在splice()
中指定的索引处插入刚从数组中删除的项目。
to
是Javascript在数组对象上创建称为Array.prototype.move
的扩展方法的方式。有权使用此功能的任何代码都可以在任何数组(例如move
)上调用move(from, to)
。因此,我将其放置在全局位置,以便您的所有代码都能看到它!
示例:
myArray.move(2, 0)
答案 1 :(得分:0)
这里有一个例子,怎么做:
<script>
var people = [
{name: 'Collin', city: 'Omaha', friend: false},
{name: 'Alice', city: 'New York', friend: false},
{name: 'Pasha', city: 'Moscow', friend: true},
{name: 'Denis', city: 'St. Pete', friend: true}
];
function toBeginning(index)
{
var obj = people[index];
people.splice(index, 1);
people.unshift(obj);
}
// To test it
alert(people[0].name); // Alert: Collin
toBeginning(2); // move position 2 (Pasha) to Beginning
alert(people[0].name); // Alert: Pasha