以下是需要翻译的内容:
编写一个名为charAt的函数,该函数接受一个字符串和一个索引(数字),并返回该索引处的字符。
如果数字大于字符串长度,则函数应返回空字符串。
关键是您不能使用内置的charAt方法。
除未包括if语句外,我的理解正确吗?那正确的实现应该是什么?(刚学JS,先谢罪)。
function charAt(string, index) {
var charAt = string[index];
return charAt;
}
以下是需要翻译的内容:
编写一个名为charAt的函数,该函数接受一个字符串和一个索引(数字),并返回该索引处的字符。
如果数字大于字符串长度,则函数应返回空字符串。
关键是您不能使用内置的charAt方法。
除未包括if语句外,我的理解正确吗?那正确的实现应该是什么?(刚学JS,先谢罪)。
function charAt(string, index) {
var charAt = string[index];
return charAt;
}
除了一个问题以外,看起来大部分都很好——存在一些奇怪的字符(由代理对组成的字符,有时称为多字节字符),它们占用了字符串中不止一个索引位置。例如 。如果字符串包含这样的字符,则将其计为字符串中的两个索引位置:
function charAt(string, index) {
var charAt = string[index];
return charAt;
}
console.log(
charAt('foobar', 3), // Broken character, wrong
charAt('foobar', 4), // Broken character, wrong
charAt('foobar', 5), // Wrong character (should be "a", not "b")
charAt('foobar', 6), // Wrong character (should be "r", not "a")
);
Array.from
先将其转换为数组:
function charAt(string, index) {
var charAt = Array.from(string)[index];
return charAt;
}
console.log(
charAt('foobar', 3),
charAt('foobar', 4),
charAt('foobar', 5),
charAt('foobar', 6),
);
function charAt(string, index) {
return Array.from(string)[index] || '';
}
console.log(
charAt('foobar', 3),
charAt('foobar', 4),
charAt('foobar', 5),
charAt('foobar', 6),
);
console.log(charAt('foobar', 123));
[index]
而不是.charAt(index)
似乎太简单了,以至于不可能是正确答案,但谁知道呢?只有编写该任务的人才知道这是否是他们可以接受的解决方案。 - JLRishe