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];
3 Réponses :
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] );
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 code> où si vous avez le caractère z i> avec index 25 code> et vous allez 13 < / Code> Lieux, vous devriez obtenir un personnage au lieu d'indéfinir. Donc 11 code> 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 b> la longueur et revenir à 0, mais vous ne pouvez pas utiliser de chiffres négatifs , qui est tout le point de la question.
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));
Je nommerais la fonction juste obtenir code> et en ligne le corps: array.pototype.get = fonction (index) {renvoie ceci [index <0? (cet indice.length + Index): Index]; }; code>
Ouais que nous pouvons aussi @ a.chiesa
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
"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] code> pour accéder au dernier élément. Alors, s'il vous plaît, tout simplement pas.
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] code>Pouvez-vous expliquer votre code?
En Python,
str [-2] code> donne dans"o" code>. 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.