【发布时间】:2020-07-10 03:23:27
【问题描述】:
我正在尝试从具有以下条件的另一个字符串数组中获取一个字符串数组:-
1:应包含数组第一个索引处单词的第一个字母与所有其他元素 EX - ["AH", "BEE", "JAMES"] --> ["ABEEJAMES"]
2: 应该在数组的第一个和第二个索引处包含单词的第一个字母与所有其他元素的连接 EX - ["AH", "BEE", "JAMES"] --> ["ABJAMES"] 这需要在数组的最后一个索引之前完成
输入字符串数组
const updateFullNameParts = ["AH", "BEE", "JAMES"];
当前实现
const noSpaceName = updateFullNameParts.join("");
const createCombination = fullNameParts.map((name) => {
const fullNamePartsCopy = fullNameParts;
const innerResult = fullNamePartsCopy.map((nameCopy) => {
let innerCopy = "";
for (let i = 0; i < fullNamePartsCopy.length; i++) {
if (name === fullNamePartsCopy[i]) {
innerCopy = innerCopy + fullNamePartsCopy[i];
} else if (nameCopy === fullNamePartsCopy[i])
innerCopy = innerCopy + fullNamePartsCopy[i];
else innerCopy = innerCopy + fullNamePartsCopy[i].slice(0, 1);
}
return innerCopy;
});
预期的字符串数组
["ABEEJAMES", "ABJAMES", "ABJ", "AHBJAMES", "ABEEJ", "AHBEEJAMES", "AHBEE"]
数组不应包含
["BJAMES", "AB", "BAJAMES", "A"]
基本上,数组应该只包含按索引顺序排列的组合。
对此有低时间复杂度的解决方案吗?
【问题讨论】:
-
“AHBJ”应该也有吧?
-
是的,它应该在那里
标签: javascript arrays typescript