2015-03-11 2 views
-2

Например, у меня есть массивНаиболее эффективный способ перемещения нескольких строк в массиве другое положение

["bob", "mary", "steve", "joe", "phil", "mark", "jon"]

Хочу сдвинуть положение 2 & 3, и вставить его между положением 4 & 5. результат массив будет:

["bob", "mary", "phil", "steve", "joe", "mark", "jon"]

есть ли способ, чтобы двигаться в то же время оба элемента, а не по отдельности, что в конечном итоге стоить намного больше р наилучшие показатели?

+1

вам нужно JSPerf различных решений, как не ясно, какой из них будет более эффективным –

+0

Почему бы не написать что-нибудь что пытается это сделать, и вы можете спросить, можно ли его оптимизировать? –

ответ

1

Я не уверен, что ты меня оптимизируя против, но с использованием сращивания это так:

var arr = ["bob", "mary", "steve", "joe", "phil", "mark", "jon"]; 
var x = arr.splice(2,2); //remove the two indexes 
var args = [3,0].concat(x); //index where to be added is shifted since we removed indexes 
Array.prototype.splice.apply(arr, args); //insert back in 
console.log(arr); 
Смежные вопросы