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

Kiểm tra các mảng có đỉnh tập trung trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng số, arr, làm đối số đầu tiên và duy nhất.

Hàm của chúng ta nên kiểm tra xem mảng đầu vào có phải là một mảng có đỉnh tập trung hay không. Nếu đó là mảng có đỉnh tập trung, chúng ta nên trả về true, ngược lại là false.

Các điều kiện để trở thành một mảng có đỉnh tập trung là -

  • arr.length> =3

  • Tồn tại một số i với 0

    • arr [0]

    • arr [i]> arr [i + 1]> ...> arr [arr.length - 1]

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

const arr = [2, 6, 7, 9, 5, 3, 1];

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

const output = true;

Giải thích đầu ra

Bởi vì mảng đạt đỉnh là 9.

Ví dụ

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

const arr = [2, 6, 7, 9, 5, 3, 1];
const isCentrallyPeaked = (arr = []) => {
   let ind = undefined;
   for (let i = 1; i <= arr.length - 1; i++) {
      if (ind === undefined) {
         if (arr[i] < arr[i - 1]) {
            ind = i - 1
         } else if (arr[i] === arr[i - 1]) {
            return false
         }
      } else if (arr[i] >= arr[i - 1]) {
         return false
      }
   }
   return ind > 0 && ind < arr.length - 1
};
console.log(isCentrallyPeaked(arr));

Đầu ra

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

true