// pages/home/home.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { let arr = [1, 2, 3, 4, 5] let k = 4, x = 3 /** * * @param {number[]} arr * @param {number} k * @param {number} x * @return {number[]} * */ var findClosestElements = function(arr, k, x) { var getCloseIndex = function(left,right){ if(left>=right) return left; let mid=(left+right)>>1; let result if(arr[mid]>=x){ result=getCloseIndex(left,mid-1) }else{ result=getCloseIndex(mid+1,right) } return result } const len=arr.length; let right=getCloseIndex(0,len-1); let left=0; if(right>0&&arr[right]>x) right--; if(right+1>=k) left=right+1-k; else right+=(k-(right+1)); while(right(arr[right+1]-x))){ left++; right++; } return arr.slice(left,right+1); } const res = findClosestElements(arr, k, x) console.log(res); }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })