如何在JavaScript中实现将字符串"ABCD"转为["A","AB","ABC","ABCD"]的函数?
实现方法与术语说明
专业术语
这个生成字符串所有**前缀(Prefixes)**并组成数组的操作,英文可称为 String Prefix Array Generation,核心是提取目标字符串中长度从1到原字符串长度的所有前缀子串。
JavaScript 实现方案
方案1:基础循环实现
通过循环遍历字符串的每个字符,逐步拼接前缀并推入结果数组:
function getPrefixArray(str) { const result = []; let currentPrefix = ''; for (const char of str) { currentPrefix += char; result.push(currentPrefix); } return result; } // 调用示例 console.log(getPrefixArray("ABCD")); // 输出 ["A","AB","ABC","ABCD"]
方案2:使用 Array.from 简化代码
利用Array.from的映射参数,直接生成对应前缀:
const getPrefixArray = str => Array.from(str, (_, index) => str.slice(0, index + 1)); // 调用示例 console.log(getPrefixArray("ABCD")); // 输出 ["A","AB","ABC","ABCD"]
方案3:使用 reduce 方法
通过累加器逐步构建前缀数组:
const getPrefixArray = str => str.split('').reduce((acc, char) => { acc.push(acc.length ? acc[acc.length - 1] + char : char); return acc; }, []); // 调用示例 console.log(getPrefixArray("ABCD")); // 输出 ["A","AB","ABC","ABCD"]
内容的提问来源于stack exchange,提问作者Rashad AL-Maqtary
相关产品推荐
相关产品推荐

