在 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 個瀏覽量

開啟你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.