Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาการรวมสตริงย่อยทั้งหมดภายในอาร์เรย์ใน 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' ]