【前端一题】let/const与var区别

59 阅读1分钟

跟大家一起每天进步一丢丢,在学习的路途上不掉队。

[ 经典题 ] let a = a;在运行时,会出现什么问题?为什么?
谈谈varletconst区别?



  • 试题参考答案跟第二天试题一起更新。
  • 希望大家积极参与和讨论。

使用二分查找检索数值,参考答案:

const binarySearch = (arr, value) => {
    const len = arr.length;
    const isEqual = (a, b) => [a].includes(b);

    if (len === 0) return false;
    if (len === 1) return isEqual(arr[0], value);

    const midIndex = Math.floor(len / 2),
        minValue = arr[0],
        maxValue = arr[len - 1],
        midValue = arr[midIndex];

    // 若是比最小值要小或比最大值要大,则返回false
    if (value < minValue || value > maxValue) return false;
    // 若是等于中间值,则返回true
    if (isEqual(value, midValue)) return true;

    // 否则继续二分查找
    const [start, end] = value > midValue ? [midIndex + 1, len] : [0, midIndex];
    const newSearchArr = arr.slice(start, end);

    return binarySearch(newSearchArr, value);
};


const arr = [0, 2, 4, 6, 9, 21, 45, 78]; 
console.log(binarySearch(arr, 6)); // true
console.log(binarySearch(arr, 5)); // false

code execute result

image.png

专注于原创短更,便于碎片化涉猎知识。希望我走过的路,留下的痕迹,能对你有所启发和帮助。

转发请注明原处,平台投稿请私信。