Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm tất cả tổ hợp chuỗi con trong mảng bằng JavaScript


Chúng ta cần viết một hàm JavaScript nhận một mảng chuỗi. Hàm sẽ tìm tất cả các tổ hợp chuỗi con và chuỗi cha tồn tại trong mảng và trả về mảng các phần tử đó.

Ví dụ – Nếu mảng là:

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

Thì đầu ra nên là:

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

vì hai chuỗi đầu là chuỗi con của chuỗi cuối.

Ví dụ

Mã thực hiện:

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));

Kết quả

Kết quả trong console:

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