ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของค่าคงที่ (literals) จำนวนเท่าไรก็ได้เป็นอินพุต
ฟังก์ชันควรเตรียมอาร์เรย์ใหม่ที่ประกอบด้วยองค์ประกอบที่เลือกสลับกันจากอาร์เรย์อินพุตทั้งหมด
ตัวอย่างเช่น หากอินพุตคือ
อินพุต
const arr1 = [1, 2, 3, 4];
const arr2 = [11, 12, 13, 14];
const arr3 = ['a', 'b', 'c'];
เอาต์พุต
const output = [1, 11, 'a', 2, 12, 'b', 3, 13, 'c', 4, 14];
ตัวอย่างโค้ด
const arr1 = [1, 2, 3, 4];
const arr2 = [11, 12, 13, 14];
const arr3 = ['a', 'b', 'c'];
const pickElements = (...arrs) => {
const res = [];
const max = Math.max(...arrs.map(el => el.length));
for (let i = 0; i < max; i++) {
for (let j = 0; j < arrs.length; j++) {
if (arrs[j][i]) {
res.push(arrs[j][i]);
}
};
};
return res;
};
console.log(pickElements(arr1, arr2, arr3));
ผลลัพธ์
[ 1, 11, 'a', 2, 12, 'b', 3, 13, 'c', 4, 14 ]