我正在解下面的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。为什么后者会破坏我的代码?
发布于 2021-12-23 12:11:41
只有在没有键等于map[complement] === undefined的元素时,!map[complement]才会变成true,而在其结果是虚妄值的所有情况下,!map[complement]才会变成true。
Falsy值包括但不限于""、false、undefined、null、0、-0等。
换句话说,第一种情况是第二种情况的子集。
https://stackoverflow.com/questions/70461947
复制相似问题