'What is || between obj[delta] || obj[delta] in this code? and why is it used in this way? [duplicate]
I found an answer for the Two Sum question on leetcode; the solution used || between obj[delta] || obj[delta]. Does anyone know why they used it in this way and what does it mean?
for(let i = 0; i< nums.length; i++) {
let cur = nums[i];
let delta = target - cur;
if(obj[delta] || obj[delta] === 0) {
return [obj[delta], i];
}
obj[cur] = i;
}
Solution 1:[1]
0 is falsy in javascript, so they're making allowance for the obj[delta] value to be 0. In this two-sum task they seem to be allowing [0, target] as a valid answer.
Another interesting OR fact: the || operator actually returns the value of the first non-falsy operand. So it can also be used to return default values.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Nicolas Goosen |
