เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ของตัวเลขเป็นอาร์กิวเมนต์เดียว ตัวเลขที่อยู่ในดัชนีคู่จะคืนค่าเดิม แต่ตัวเลขที่อยู่ในดัชนีคี่จะต้องคูณกับดัชนีของมันเอง
ตัวอย่างเช่น:
หากอินพุตคือ: [5, 10, 15, 20, 25, 30, 50, 100] ผลลัพธ์ควรเป็น: [5, 10, 15, 60, 25, 150, 50, 700]
เราจะใช้เมธอด Array.prototype.reduce() เพื่อสร้างอาร์เรย์ที่ต้องการ โค้ดของฟังก์ชันจะเป็นดังนี้:
ตัวอย่างโค้ด
const arr = [5, 10, 15, 20, 25, 30, 50, 100];
const multiplyOdd = (arr) => {
return arr.reduce((acc, val, ind) => {
if (ind % 2 === 1) {
val *= ind;
}
return acc.concat(val);
}, []);
};
console.log(multiplyOdd(arr));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
[5, 10, 15, 60, 25, 150, 50, 700]