ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็ม arr เรียงตามลำดับที่เพิ่มขึ้น
ฟังก์ชันของเราควรจะส่งคืนอาร์เรย์ของกำลังสองของแต่ละตัวเลข และจัดเรียงตามลำดับที่เพิ่มขึ้นด้วย
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
const arr = [-2, -1, 1, 3, 6, 8];
จากนั้นผลลัพธ์ควรเป็น −
const output = [1, 1, 4, 9, 36, 64];
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [-2, -1, 1, 3, 6, 8];
const findSquares = (arr = []) => {
const res = []
let left = 0
let right = arr.length - 1
while (left <= right) {
const leftSquare = arr[left] * arr[left]
const rightSquare = arr[right] * arr[right]
if (leftSquare < rightSquare) {
res.push(rightSquare)
right -= 1
} else {
res.push(leftSquare)
left += 1
}
}
return res.reverse();
};
console.log(findSquares(arr)); ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ 1, 1, 4, 9, 36, 64 ]