Javascript Leetcode二和问题关于为什么我的代码不';行不通

Javascript Leetcode二和问题关于为什么我的代码不';行不通,javascript,algorithm,Javascript,Algorithm,给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标 您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素 var twoSum = function(nums, target) { let comp = {}; for(let i =0; i<nums.length; i++){ let match = target - nums[i] 片段: var twoSum=函数(nums,目标){ 设comp={}; for(设i=0;

给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标

您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素

var twoSum = function(nums, target) {
    let comp = {};
    for(let i =0; i<nums.length; i++){
        let match = target - nums[i]
片段

var twoSum=函数(nums,目标){
设comp={};
for(设i=0;itwoSum([2,7,11,15,9)
comp背后的思想是存储之前在循环遍历数字数组时看到的值的索引。这意味着对象中的键可以指向索引
0

在JavaScript中,考虑了
0
,因此当放入
if
语句时,它将跳过
if
块,因为它被认为是
false
,而是执行
else

if(0){
console.log(“truthy”);//不执行
}否则{
控制台日志(“falsy”);

}
删除
comp[match]>=0是什么意思?如果你的if语句看起来像
if()
,那么你会得到一个语法错误。因为它的价值,我前几天解释了这个算法,这可能会帮助你更深入地理解它是如何工作的?@NickParsons我的意思是写
if(comp[match])
而不是写
if(comp[match]>=0)
是否有任何数字为负数?什么是
nums
if(comp[match])
的计算结果将不同于
if(comp[match]>=0)
如果
comp[match]
为负。@艾米第一个测试用例是2,7,11,15,目标是9谢谢,我忘了零可以是错误的索引。如果你不介意扩展的话。我们什么时候能得到一个未定义的情况?
        if(comp[match]>=0){
            return [comp[match], i]
            console.log(comp)
        }
        else{
            comp[nums[i]]= i
        }
        console.log(comp)

    }
};