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' ]