перенести код Python на JavaScript - PullRequest
0 голосов
/ 16 мая 2009
indices[i:] = indices[i+1:] + indices[i:i+1]

Надеюсь, кто-то поможет.

Ответы [ 2 ]

6 голосов
/ 17 мая 2009

Я довольно плохо знаком с Python, но если я правильно понимаю код, он восстанавливает список из заданного смещения в каждый элемент, следующий за смещением + 1, и элемент со смещением.

Запуск, кажется, подтверждает это:

>>> indices = ['one','two','three','four','five','six']
>>> i = 2
>>> indices[i:] = indices[i+1:] + indices[i:i+1]
>>> indices
['one', 'two', 'four', 'five', 'six', 'three']

В Javascript можно написать:

indices = indices.concat( indices.splice( i, 1 ) );

Та же самая последовательность будет идти:

>>> var indices = ['one','two','three','four','five','six'];
>>> var i = 2;
>>> indices = indices.concat( indices.splice( i, 1 ) );
>>> indices
["one", "two", "four", "five", "six", "three"]

Это работает, потому что splice разрушает массив, но возвращает удаленные элементы, которые затем могут быть переданы concat .

1 голос
/ 16 мая 2009

Вы захотите посмотреть на Array.slice ()

var temp=indices.slice(i+1).concat(indices.slice(i, i+1));
var arr=[];
for (var j=0; j<temp.length; j++){
   arr[j+i]=temp[i];
}
...