2009-05-16 8 views
0
indices[i:] = indices[i+1:] + indices[i:i+1] 

J'espère que quelqu'un aide.code python de port à javascript

+0

Essayez google ...... –

+1

pas familier avec python, donc je ne suis pas sûr de ce que cela fait. On dirait que cela pourrait être expliqué dans une phrase. Ensuite, je pourrais essayer d'aider. –

Répondre

6

Je suis assez nouveau pour Python, mais si je comprends bien le code, il reconstitue une liste d'un décalage donné dans tous les éléments suivants offset + 1 et la article à l'offset.

Son exécution semble confirmer:

>>> 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'] 

en Javascript peut être écrit:

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

séquence entière en irait de même:

>>> 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"] 

Cela fonctionne parce que splice est destructeur à la matrice mais renvoie les éléments supprimés, qui peuvent ensuite être remis à concat.

+0

Est-il évident que la dernière phrase est inventée juste pour tenir dans certains liens vers les méthodes sur MDC? :-) – Borgar

+0

quelle ligne de commande javascript est-ce? –

+4

Il s'agit d'une ligne de commande imaginaire. J'ai couru le code avec FireBug mais ajouté le >>> à la fin simplement pour le faire ressembler au bloc de Python. :-) – Borgar

1

Vous voulez regarder 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]; 
}