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

Tìm chữ cái nhỏ nhất lớn hơn mục tiêu trong JavaScript

Giả sử chúng ta được cung cấp một mảng các ký tự đã được sắp xếp chỉ chứa các ký tự viết thường. Và đưa ra một mục tiêu thư mục tiêu.

Chúng tôi được yêu cầu viết một hàm JavaScript lấy mảng làm đối số đầu tiên và ký tự là đối số thứ hai. Hàm phải tìm phần tử nhỏ nhất trong danh sách lớn hơn mục tiêu đã cho.

Chúng ta phải ghi nhớ rằng các chữ cái cũng quấn quanh. Ví dụ:nếu mục tiêu là target ='z' và các chữ cái =['a', 'b'], thì câu trả lời là 'a'.

Ví dụ -

Nếu mảng đầu vào và chữ cái là -

const arr = ["c", "f", "j"];
const target = "a";

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

const output: "c";

Ví dụ

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

const arr = ["c", "f", "j"];
const target = "a";
const findNearestLetter = (arr = [], target = '') => {
   let left = 0;
   let right = arr.length - 1;
   while (left <= right) {
      let mid = left + (right - left) / 2;
      if (arr[mid] <= target) {
         left ++;
      } else {
         right --;
      };
   };
   if (left == arr.length) {
      return arr[0];
   };
   return arr[left];
};
console.log(findNearestLetter(arr, target));

Đầu ra

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

c