0
votes

Y a-t-il un moyen d'accéder à l'élément de réseau d'index moins comme à la liste de Python?

var str=['a','c','d','o','p'];
how can I access 'o' in above string using minus index like str[-2]; in javascript;In python I easily do this but I got stuck here please help out.I am working this for this task.
A common modern use is the ROT13 cipher, where the values of the letters are shifted by 13 places. Thus 'A' ↔ 'N', 'B' ↔ 'O' and so on.so I thought of accessing with minus index. For example if the given letter is z the index is 25 so I access str[-str.length+13];

8 commentaires

Question: Pourquoi l'indice négatif?


Quel est l'avantage d'accéder aux éléments utilisant un index négatif?


Je veux accéder à la chaîne au-delà de la longueur de la chaîne qui commence à nouveau à l'index 0 @SID


Dans ce cas, essayez var str = ['A', 'C', 'D', 'O', 'P']; str [12% str.l.length]


Pouvez-vous expliquer votre code?


En Python, str [-2] donne dans "o" . Quelle est la logique derrière votre désir de "C" pour vous y accéder?


Je le veux pour chaque personnage, par exemple, si la lettre donnée est "P", je veux +3 index qui devrait me donner "D"


Vous pouvez utiliser l'opérateur de modulus pour parcourir le tableau.


3 Réponses :


1
votes

Je veux accéder à String Beyound la longueur de la chaîne qui commence à nouveau à l'index 0 p>

Les matrices JS ne sont pas une structure de liste liée à la circulaire, où si vous allez au-delà des limites, vous commencez par la première valeur. p>

Ils sont comme des objets normaux où vous ne devez pas spécifier les clés et avec une boucle étendue Mécanisme. P>

pour y parvenir, vous devrez utiliser Opérateur de modulus (% code>) strong>. L'idée est de revenir en arrière de l'index dans les limites. P>

p>

var str=['a','c','d','o','p'];
var index = 11;

console.log( str[ index % str.length] );


4 commentaires

Qu'est-ce que "Var Index = 11" vient de ou représente?


même doute que j'ai aussi eu


@Certeperformance OP cherche à avoir un comportement d'un circulatlinkedlist où si vous avez le caractère z avec index 25 et vous allez 13 < / Code> Lieux, vous devriez obtenir un personnage au lieu d'indéfinir. Donc 11 dans mon exemple est juste un nombre aléatoire hors limites et représente une valeur appropriée même après avoir passé les limites ci-dessus


Sauf si vous voulez raisonner sur le "dernier est le -1", vous ne pouvez tout simplement pas avec module ... vous pouvez aller sur la longueur et revenir à 0, mais vous ne pouvez pas utiliser de chiffres négatifs , qui est tout le point de la question.



5
votes

Eh bien, il n'y a aucun moyen de le faire, mais vous pouvez créer une fonction dans le JavaScript pour le tableau, puis vous le souhaitez comme suit:

p>

str=["a", "c", "d", "o", "p"];

Array.prototype.accessViaIndex=function(index){
if(index<0){
   return this[(this.length+index)]
}
return this[index];
}

console.log(str.accessViaIndex(-1));


2 commentaires

Je nommerais la fonction juste obtenir et en ligne le corps: array.pototype.get = fonction (index) {renvoie ceci [index <0? (cet indice.length + Index): Index]; };


Ouais que nous pouvons aussi @ a.chiesa



0
votes

edit - mai 2021 strong>: le .at () code> méthode, qui est actuellement à l'étape 3 peut faire exactement ce que vous avez après. Ce n'est pas encore disponible, mais l'espoir sera très bientôt. Il peut être analysé les indices positifs et négatifs. Lorsqu'un indice négatif est fourni, il est traité comme un décalage à partir de l'extrémité de la matrice, de sorte que l'alimentation avec -2 code> est identique à l'indexation manuellement de la matrice à array.length-2 CODE>:

const arr = ['a','c','d','o','p'];
const getElem = (arr, i) => arr[i < 0 ? arr.length+i : i];

console.log(getElem(arr, 3)); // o
console.log(getElem(arr, 0)); // a
console.log(arr); // array is still the same
console.log(getElem(arr, -1)); // p
console.log(getElem(arr, -2)); // o


1 commentaires

"Vous pouvez" n'implique généralement pas que vous pourriez. Vous êtes de la copie peu profonde d'un tableau (d'éventuellement de nombreux articles) juste pour vous éviter de faire arr [arr.l.length - 1] pour accéder au dernier élément. Alors, s'il vous plaît, tout simplement pas.