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;
}
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.