Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การเพิ่มแท็กย่อหน้าให้สับสตริงในสตริงด้วย JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริง str เป็นอาร์กิวเมนต์แรก และอาร์เรย์สตริง arr เป็นอาร์กิวเมนต์ที่สอง เราต้องเพิ่มแท็ก <p> และ </p> ครอบสับสตริงใน str ที่มีอยู่ใน arr ถ้าสับสตริงสองตัวทับซ้อน ให้ครอบร่วมกันด้วยคู่แท็กเดียว และถ้าสับสตริงที่ถูกครอบอยู่ติดกัน ให้รวมกัน

ตัวอย่าง

ถ้าสตริงและอาร์เรย์นำเข้าคือ:

const str = 'kkkllmm';
const arr = ["kkk", "kkl", "lm"];

ผลลัพธ์ควรเป็น:

const output = '

kkkllm

m';

ตัวอย่างโค้ด

const str = 'kkkllmm';
const arr = ["kkk", "kkl", "lm"];
var addParagraphTag = (str = [], arr = []) => {
  if(!arr.length) {
    return str;
  }
  const { length } = str;
  let paraBoolean = new Array(length).fill(false);
  let end = 0;
  for (let i = 0; i < length; i++) {
    for (let j = 0; j < arr.length; j++) {
      let word = arr[j];
      if (str.startsWith(word, i)) {
        end = Math.max(end, i + word.length);
      }
    }
    paraBoolean[i] = end > i;
  }
  let curr = 0;
  let newStr = '';
  while (curr < length) {
    while(paraBoolean[curr] === false) {
      newStr += str[curr++];
    }
    if (curr >= length) break;
    newStr += '

'; let startBold = curr; while (paraBoolean[curr] === true) curr++; newStr += str.slice(startBold, curr); newStr += '

'; } return newStr; }; console.log(addParagraphTag(str, arr));

ผลลัพธ์

kkkllm

m