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

วนซ้ำอาร์เรย์และแก้ไขสตริง JavaScript


สมมติว่า เราต้องเขียนฟังก์ชัน พูด translate() ที่ยอมรับสตริงเป็นอาร์กิวเมนต์แรกและจำนวนคำใดๆ หลังจากนั้น

สตริงจะมีเครื่องหมาย n $ เช่นนี้ −

$0 นี้มากกว่า $1 เพียง $2 จากนั้นจะมี 3 สตริงที่จะแทนที่ตำแหน่งที่เกี่ยวข้อง

ตัวอย่างเช่น −

หากการเรียกใช้ฟังก์ชันเป็นแบบนี้ −

translate('This $0 is more $1 just a $2.', 'game', 'than', 'game');

ผลลัพธ์ของฟังก์ชันควรเป็น −

เกมนี้เป็นมากกว่าเกม

ฟังก์ชันนี้เหมือนกับการใส่เทมเพลตใน JavaScript

ดังนั้น เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −

เราจะใช้เมธอด String.prototype.replace() ที่นี่ เรารู้ว่าถ้าเราใช้รูปแบบ regex เพื่อให้ตรงกับเหตุการณ์ทั้งหมด และใช้ฟังก์ชันเป็นพารามิเตอร์ที่สอง พารามิเตอร์นั้นจะถูกดำเนินการสำหรับแต่ละรายการ เราจะทำเช่นเดียวกันที่นี่

รหัสสำหรับการทำเช่นนี้จะเป็น -

ตัวอย่าง

const str ='$0 นี้มากกว่า $1 แค่ $2';const translate =(str, ...texts) => { const regex =/\$(\d+)/gi; return str.replace(regex, (item, index) => { return texts[index]; });};console.log(translate(str, 'game', 'just', 'game')); 

ผลลัพธ์

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

เกมนี้เป็นแค่เกมมากกว่า