JavaScript中如何遍历数组索引并按索引递增提取对应字符?
JavaScript实现按数组索引提取对应字符串指定位置字符
你需要实现的逻辑是:遍历数组时,用当前元素的数组索引i,去提取该元素(字符串)的第i个字符(字符串索引同样为i)。这里给你两种可行的实现方案:
方案一:改进for循环(适配你之前的尝试)
既然你已经在用for循环遍历数组索引,只需要在循环里同时用这个索引去访问字符串的对应位置即可:
const input = ['mango', 'banana', 'apple', 'orange', 'pineapple']; const result = []; for (let i = 0; i < input.length; i++) { // 用数组索引i,获取当前字符串的第i个字符 // 加|| ''是为了避免字符串长度不足时返回undefined const char = input[i][i] || ''; result.push(char); } console.log(result); // 输出: ["m", "a", "p", "n", "a"]
你也可以用字符串的charAt()方法替代索引访问,效果一致:input[i].charAt(i)。
方案二:用Array.map()简化代码
map()方法本身会在遍历数组时提供当前元素的索引,写法更简洁:
const input = ['mango', 'banana', 'apple', 'orange', 'pineapple']; const result = input.map((str, index) => str[index] || ''); console.log(result); // 输出: ["m", "a", "p", "n", "a"]
补充说明
如果数组里存在长度小于对应索引的字符串(比如某个元素是"ab",但它在数组的索引3位置),str[index]会返回undefined,用|| ''可以把这类情况转为空字符串,你也可以根据需求改成其他默认值。
内容的提问来源于stack exchange,提问作者Yusuff Tukur Abdulkadir
相关产品推荐
相关产品推荐

