这个 javaScript 代码是如何工作的?在 if 条件之后

How this javaScript code is work? after if condition

我不明白,这段代码在 if(y in hash) 之后如何工作对我来说最复杂的是 hash 是空的,我没有在 hash 中推送任何值所以后面会发生什么场景和y in hash它的含义是什么?

var twoSum = function(nums, target) {

  const hash = {}
  // console.log(hash)
  
  for (const i in nums) {
    const x = nums[i];
    const y = target - x
    // console.log(y)
    if (y in hash)
      return [i, hash[y]]
    hash[x] = i
  }

}

let arr = [2, 3, 4, 5, 6]
console.log(twoSum(arr, 11))

hash is empty and I do not push any value

hash[x] = i部分向散列中添加值,因为它不符合if(y in hash)条件

y in hash what it's meaning?

正如 Nick Parsons 在评论中提到的那样“它正在检查存储在 y 中的键是否是哈希对象(或其原型链)中的键”