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

idl*_*erg 7 javascript arrays sorting

我有一个看起来像这样的数组:

arr = ['a', 'b', 'c', 'd', 'e', 'f'];
Run Code Online (Sandbox Code Playgroud)

如何在维持订单的同时转移其值.例如,我想从以下开始'd':

new_arr = shiftArray(arr, 'd'); // => ['d', 'e', 'f', 'a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

Dhi*_*raj 6

你可以做这样的事情

function shiftArray(arr, target){ 
  return arr.concat(arr.splice(0,arr.indexOf(target)));
}
Run Code Online (Sandbox Code Playgroud)

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'));
Run Code Online (Sandbox Code Playgroud)


axe*_*uch 5

这不会修改原始数组,我建议你重命名该功能

function rotateArrayAround(array, pivotNeedle) {
   var pivot = array.indexOf(pivotNeedle);   
   return array.slice(pivot).concat(array.slice(0, pivot));
}
Run Code Online (Sandbox Code Playgroud)