Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm các ô vuông theo thứ tự đã sắp xếp trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các số nguyên, arr, được sắp xếp theo thứ tự tăng dần.

Hàm của chúng ta phải trả về một mảng các ô vuông của mỗi số, cũng được sắp xếp theo thứ tự tăng dần.

Ví dụ:nếu đầu vào của hàm là -

const arr = [-2, -1, 1, 3, 6, 8];

Sau đó, đầu ra phải là -

const output = [1, 1, 4, 9, 36, 64];

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[ 1, 1, 4, 9, 36, 64 ]