'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