Переместить элемент массива из одной позиции массива в другую - PullRequest
426 голосов
/ 15 марта 2011

Мне трудно понять, как переместить элемент массива.Например, с учетом следующего:

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

Как написать функцию для перемещения 'd' до 'b'?

или 'a' после 'c'?

После перемещения индексы остальных элементов должны быть обновлены.Это означает, что в первом примере после хода arr [0] будет = 'a', arr [1] = 'd' arr [2] = 'b', arr [3] = 'c', arr [4] ='e'

Кажется, это должно быть довольно просто, но я не могу обернуться вокруг него.

Ответы [ 21 ]

0 голосов
/ 13 марта 2019
let ar = ['a', 'b', 'c', 'd'];

function change( old_array, old_index , new_index ){

  return old_array.map(( item , index, array )=>{
    if( index === old_index ) return array[ new_index ];
    else if( index === new_index ) return array[ old_index ];
    else return item;
  });

}

let result = change( ar, 0, 1 );

console.log( result );

результат:

["b", "a", "c", "d"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...