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

JavaScript แยกสตริงตามสมาชิกของอาร์เรย์ที่กำหนด

สมมติว่าเราได้รับสตริงและอาร์เรย์ หน้าที่คือแยกสตริงตามสมาชิกที่ตรงกันของอาร์เรย์

เช่น

อินพุต

const string = 'Javascript splitting string by given array element';
const arr = [2, 4, 5, 1, 3, 1, 2, 3, 7, 2];

เอาต์พุต

['Ja','vasc','ript ','s','pli','t','ti','ng ','string ','by']

เขียนฟังก์ชัน splitAtPosition รับสตริงและอาร์เรย์ ใช้ Array.Prototype.reduce() คืนอาร์เรย์ที่แยกแล้ว

ตัวอย่าง

const string = 'Javascript splitting string by given array element';
const arr = [2, 4, 5, 1, 3, 1, 2, 3, 7, 2];
const splitAtPosition = (str, arr) => {
  const newString = arr.reduce((acc, val) => {
    return {
      start: acc.start + val,
      newArr: acc.newArr.concat(str.substr(acc.start, val))
    }
  }, {
    start: 0,
    newArr: []
  });
  return newString.newArr;
};
console.log(splitAtPosition(string, arr));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น

[ 'Ja', 'vasc', 'ript ', 's', 'pli', 't', 'ti', 'ng ', 'string ', 'by' ]