在 JavaScript 数组中寻找全部子字符串组合


我们需要编写一个 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' ]

更新日期:2020-11-24

292 个浏览量

开启你的 职业生涯

完成课程即可获得认证

开始
广告