Binary Search algorithm by LeetCode, template 1 in JavaScript

Binary search algorithm, template 1, simple version. Source: https://leetcode.com/explore/learn/card/binary-search/125/template-i/938/

by Yurii Predborskyi

JavaScript

// binary seach original algorithm

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
let search = function(nums, target) {
  let left = 0;
  let right = nums.length - 1;
  while (left <= right) {
    let mid = left + Math.floor((right - left) / 2);
    if (nums[mid] === target) {
      return mid;
    } else if (nums[mid] < target) {
      left = mid + 1;
    } else if (nums[mid] > target) {
      right = mid - 1;
    }
  }
  return -1;
};

let tests = [
    { nums: [-1,0,3,5,9,12], target: 9, answer: 4 },
    { nums: [-1,0,3,5,9,12], target: 2, answer: -1 },
    { nums: [5], target: 5, answer: 0 },
    { nums: [5], target: 3, answer: -1 },
    { nums: [2,5], target: 2, answer: 0 },
    { nums: [-1,0,5], target: 5, answer: 2 },
];

tests.forEach(test => {
    let res = search(test.nums, test.target);
    console.log(res, res === test.answer);
});