按值移动数组,保持排序顺序

Shift array by value, keep sorting in order

本文关键字:排序 顺序 移动 数组      更新时间:2023-09-26

我有一个这样的数组:

arr = ['a', 'b', 'c', 'd', 'e', 'f'];

如何在保持顺序的情况下移动其值。例如,我想以'd':

开头。
new_arr = shiftArray(arr, 'd'); // => ['d', 'e', 'f', 'a', 'b', 'c']

你可以这样做

function shiftArray(arr, target){ 
  return arr.concat(arr.splice(0,arr.indexOf(target)));
}

var arr = ['a', 'b', 'c', 'd', 'e', 'f'];
function shiftArray(arr, target){ 
  return arr.concat(arr.splice(0,arr.indexOf(target)));
}
alert(shiftArray(arr, 'd'));

这不会修改原始数组,同时我建议您重命名函数

function rotateArrayAround(array, pivotNeedle) {
   var pivot = array.indexOf(pivotNeedle);   
   return array.slice(pivot).concat(array.slice(0, pivot));
}