首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >map[complement] ===未定义vs !map[complement]

map[complement] ===未定义vs !map[complement]
EN

Stack Overflow用户
提问于 2021-12-23 12:06:54
回答 1查看 47关注 0票数 1

我正在解下面的leetcode 问题,下面有一个解决方案

代码语言:javascript
复制
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。为什么后者会破坏我的代码?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-23 12:11:41

只有在没有键等于map[complement] === undefined的元素时,!map[complement]才会变成true,而在其结果是虚妄值的所有情况下,!map[complement]才会变成true

Falsy值包括但不限于""falseundefinednull0-0等。

换句话说,第一种情况是第二种情况的子集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70461947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档