在 JavaScript 中查找数组中的所有子字符串组合

javascriptweb developmentfront end technologyobject oriented programming更新于 2024/1/9 14:36:17

我们需要编写一个 JavaScript 函数,该函数接受一个字符串数组。该函数应查找数组中存在的所有子字符串和超字符串组合,并返回这些元素的数组。

例如 − 如果数组是 −

const arr = ["abc", "abcd", "abcde", "xyz"];

那么输出应该是 −

const output = ["abc", "abcd", "abcde"];

因为前两个是最后一个的子字符串。

示例

其代码为 −

const arr = ["abc", "abcd", "abcde", "xyz"];
const findStringCombinations = (arr = []) => {
   let i, j, res = {};
   for (i = 0; i < arr.length - 1; i++) {
      if (res[arr[i]]) {
         continue;
      };
      for (j = i + 1; j < arr.length; j++) {
         if (res[arr[j]]) {
            continue;
         }
         if (arr[i].indexOf(arr[j]) !== -1 || arr[j].indexOf(arr[i]) !== -1) {
            res[arr[i]] = true;
            res[arr[j]] = true;
         }
      };
   };
   const result = arr.filter(el => res[el]);
   return result;
};
console.log(findStringCombinations(arr));

输出

控制台中的输出将是 −

[ 'abc', 'abcd', 'abcde' ]

相关文章


有用资源