สมมติว่าเราได้รับสตริงและอาร์เรย์ งานของเราคือแยกสตริงตามองค์ประกอบที่สอดคล้องกันของอาร์เรย์ ตัวอย่างเช่น −
อินพุต
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 ที่รับสตริงและอาร์เรย์และใช้เมธอด theArray.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' ]