ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวเลขสองอาร์เรย์ arr1 และ arr2 ที่มีความยาวเท่ากัน
ฟังก์ชันของเราควรสับเปลี่ยนองค์ประกอบของอาร์เรย์แรก arr1 เพื่อให้จำนวนองค์ประกอบสูงสุดมากกว่าองค์ประกอบที่สอดคล้องกันของอาร์เรย์ arr2 ฟังก์ชันควรส่งคืนอาร์เรย์ที่สับเปลี่ยน
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ
ป้อนข้อมูล
const arr1 = [3, 5, 12, 19]; const arr2 = [2, 9, 3, 12];
ผลผลิต
const output = [3, 12, 5, 19];
คำอธิบายผลลัพธ์
ก่อนที่จะสับเปลี่ยน arr1 มีองค์ประกอบที่สอดคล้องกัน 3 องค์ประกอบที่มากกว่า arr2 แต่ในอาร์เรย์ที่สับเปลี่ยน องค์ประกอบทั้ง 4 รายการจะมากกว่า
ต่อไปนี้เป็นรหัส:
ตัวอย่าง
const arr1 = [3, 5, 12, 19]; const arr2 = [2, 9, 3, 12]; const maximiseArray = (arr1 = [], arr2 = []) => { arr1.sort((a, b) => b - a) const indexes = arr2.map((v, index) => index).sort((a, b) => arr2[b] - arr2[a]) const res = [] for(let i = 0; i < indexes.length; i++) { const index = indexes[i] res[index] = arr1[0] > arr2[index] ? arr1.shift() : arr1.pop() } return res } console.log(maximiseArray(arr1, arr2));
ผลลัพธ์
[ 3, 12, 5, 19 ]