var fourSum = function (nums, target) { let arr = []; nums=nums.sort((a,b)=>a-b); for (let i = 0; i < nums.length; i++) { if(nums[i]===nums[i-1]) continue; let val = nums[i]; for (let j = i + 1; j < nums.length; j++) { if(nums[j]===nums[j-1]&&j!=i+1) continue; let inval = nums[j]; let left = j + 1; let right = nums.length-1; while (left < right) { let sum = val + inval + nums[left] + nums[right]; if (sum === target) { arr.push([val, inval, nums[left], nums[right]]); while(nums[left]==nums[left+1]) left++; while(nums[right]==nums[right-1]) right--; left++; right--; } elseif(sum>target){ right--; } elseif(sum<target){ left++; } }