我正在解決以下 leetcode問題并有以下解決方案
const twoSum = (numbers, target) => {
let map = {}
let result = []
for (let i = 0; i < numbers.length; i ) {
let complement = target - numbers[i]
if (map[complement] === undefined) {
map[numbers[i]] = i
} else {
result[0] = map[complement] 1
result[1] = i 1
}
}
return result
};
如果我替換map[complement] === undefined為!map[complement]我回傳一個空陣列。在我看來,兩者都應該回傳true。為什么后者會破壞我的代碼?
uj5u.com熱心網友回復:
map[complement] === undefined僅true當不存在鍵等于complementwhile 的元素時才變為在其結果為假值的所有情況下!map[complement]變為。true
Falsy的價值,包括但不限于"",false,undefined,null,0,-0,等。
換句話說,第一種情況是第二種情況的子集。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/391635.html
標籤:javascript 算法
上一篇:計算字串中子字串的重疊出現次數
