为什么我的for循环return 'undefined'作为字符串的最后一个元素
Why does my for loop return 'undefined' as the last element of a string
我试图使用 for 循环反转字符串。我采用的方法是反向遍历整个字符串,按降序获取字符串的每个单独字符,然后将反转的字符连接在一起形成一个新的反转字符串。
然而,我遇到了一个小问题——字符串确实反转了,但是 'undefined' 在开始时被连接起来了。
我做错了什么,为什么会这样?非常感谢您的提前帮助。
请查看代码片段和控制台了解详情。
const string = "A quick brown fox jumped over the lazy dog.";
let newStr = "";
for (let i = string.length; i >= 0; i--) {
let char = string[i];
newStr += char;
}
console.log(newStr);
因为数组从 0 开始并且最新的元素可以被 length-1
访问所以 array[length]
等于写 array[999999]
const string = "A quick brown fox jumped over the lazy dog.";
let newStr = "";
for (let i = string.length-1; i >= 0; i--) {
let char = string[i];
newStr += char;
}
console.log(newStr);
//alternative way
console.log(string.split('').reverse().join(''));
您应该从 string.length - 1
开始,因为 string[string.length]
试图引用数组边界外的元素,因此计算结果为 undefined
const string = "A quick brown fox jumped over the lazy dog.";
let newStr = "";
for (let i = string.length - 1; i >= 0; i--) {
let char = string[i];
newStr += char;
}
console.log(newStr);
我试图使用 for 循环反转字符串。我采用的方法是反向遍历整个字符串,按降序获取字符串的每个单独字符,然后将反转的字符连接在一起形成一个新的反转字符串。 然而,我遇到了一个小问题——字符串确实反转了,但是 'undefined' 在开始时被连接起来了。
我做错了什么,为什么会这样?非常感谢您的提前帮助。
请查看代码片段和控制台了解详情。
const string = "A quick brown fox jumped over the lazy dog.";
let newStr = "";
for (let i = string.length; i >= 0; i--) {
let char = string[i];
newStr += char;
}
console.log(newStr);
因为数组从 0 开始并且最新的元素可以被 length-1
访问所以 array[length]
等于写 array[999999]
const string = "A quick brown fox jumped over the lazy dog.";
let newStr = "";
for (let i = string.length-1; i >= 0; i--) {
let char = string[i];
newStr += char;
}
console.log(newStr);
//alternative way
console.log(string.split('').reverse().join(''));
您应该从 string.length - 1
开始,因为 string[string.length]
试图引用数组边界外的元素,因此计算结果为 undefined
const string = "A quick brown fox jumped over the lazy dog.";
let newStr = "";
for (let i = string.length - 1; i >= 0; i--) {
let char = string[i];
newStr += char;
}
console.log(newStr);