я не понял, как этот код работает после того, как 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))
Вы также должны быть используя for/of
для перебора массива.
hash is empty and I do not push any value
hash[x] = i
часть добавляет значения в хэш, потому что он не в if(y in hash)
состоянии
y in hash
what it's meaning?
Как отметил Ник Парсонс в комментарии, «он проверяет, является ли ключ, хранящийся в y, ключом в хеш-объекте (или его цепочке прототипов)».
Он проверяет, является ли ключ, хранящийся в
y
, ключом в объектеhash
(или его цепочке прототипов), вы можете быть готовы кin
здесь. Вы добавляете ключи (не нажимая) вhash
каждый раз, когда делаетеhash[x] = i