var threeSum = function(nums) {
const resArr = [];
const length = nums.length
nums = nums.sort((a, b) => a - b);
for (let i = 0; i < length - 2; i ++) {
if (nums[i] < 0 && i > 0 && nums[i] !== nums[i - 1]) {
let left = i + 1;
let right = length - 1;
const target = -nums[i];
while (left < right) {
if (nums[left] + nums[right] === target) {
resArr.push([nums[i], nums[left], nums[right]]);
while (left < right && nums[left] === nums[left + 1]) left ++;
while (left < right && nums[right] === nums[right - 1]) right --;
left ++;
right --;
} else if (nums[left] + nums[right] < target) {
left ++
} else {
right --;
}
}
}
}
return resArr;
}