var threeSumClosest = function(nums, target) {
let len = nums.length
// 数组长度小于等于3 直接进行累加
let num
if(len<=3) return num = nums.reduce((a,b)=>a+b)
// 先定义一个最小值
let min = Math.abs(target-(nums[0]+nums[1]+nums[2]))
// 进行排序
nums.sort((a,b)=>a-b)
for(let i = 0 ; i<len;i++){
// 这个值与上一个值相等 跳出循环
if(nums[i]===nums[i-1])continue
// 定义左右指针
let right = len-1
let left = i+1
while(right>left){
let sum = nums[i]+nums[left]+nums[right]
// 如果sum与目标值相等 直接返回num等于目标值
if(sum===target)return num = target
// 如果sum-target的绝对值小于min 说明这个值就是我们可以要的
if(Math.abs(sum-target)<=min) {
// 给min赋值 返回值等于sum
min = Math.abs(sum-target)
num = sum
}
// 目标值大于target 右指针往左 小于target 左指针往右
if(sum>target)right--
else if(sum<target)left++
}
}
return num
};