var str = ['a','c','d','o','p'];
如何使用减号(如str [-2])访问上述字符串中的'o';在javascript中;
在python中,我很容易做到这一点,但是我被卡在这里,请帮忙。
我正在为此任务工作。 ROT13密码是现代常见的用法,其中字母的值偏移了13个位。因此,“ A”↔“ N”,“ B”↔“ O”等。
所以我想到了以负索引访问。例如,如果给定字母为z,索引为25,那么我访问str [-str.length + 13];
答案 0 :(得分:4)
没有办法做到这一点,但是您可以在javascript中为数组创建一个函数,然后可以如下所示:
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));
答案 1 :(得分:0)
我想访问的字符串长度是从索引0开始的字符串长度
JS数组不是循环链接列表结构,如果超出范围,则从第一个值开始。
它们就像普通的对象,您无需指定键并具有广泛的循环机制。
因此,您必须使用 modulus operator (%
) 。想法是在范围内回溯索引。
var str=['a','c','d','o','p'];
var index = 11;
console.log( str[ index % str.length] );
答案 2 :(得分:0)
您可以使用.splice()
来使用负值:
const arr = ['a','c','d','o','p'];
const getElem = (arr, i) => [...arr].splice(i,1)[0];
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