【问题标题】:Find Two numbers When added to give Target number查找两个数字添加时给出目标数字
【发布时间】:2019-10-04 09:54:39
【问题描述】:

我编写这段代码是为了在添加时找到两个数字,给出一个目标数字。 我已经解决了这个练习,但我想用上面的方法做 在 if 语句中没有返回 true,我不知道为什么。

function add(arr , target){
    let result = [];
    arr.map ( (item) => {
        const num1 = target - item;
        if (arr.includes(num1)) {
            return result.concat(num1 , item);
        }
        else {
            return "Unfortunaly there isnt answer";
        }
    });
}

add([3,4,5,6,10] , 16);

【问题讨论】:

  • 您想在数组中找到任意两个数字,添加后给出目标数字?我说的对吗?
  • 预期输出?
  • 你是 N Djokic...@N.Djokic
  • 并且应该返回 [10 , 6] @User863

标签: javascript ecmascript-2016


【解决方案1】:
function add(arr , target){
    let result = [];
    for (let item of arr){
        const num1 = target - item;
        if (arr.includes(num1)) {
            return result.concat(num1 , item);
        }
    };
    return "Unfortunately there is no answer";
}

const result = add([3,4,5,6,10] , 16);

// will print [10, 6]
console.log(result)

【讨论】:

  • 您有正确的答案(提问者误用了 map 方法,您已正确地将其更改为 for 循环),但是我认为您还需要一些解释。
  • @EuanSmith 是的,它是......但是你为什么使用 for of 循环......所有其他都是一样的
  • mapfor 相同。我建议查看MDN docs。我上面的意思是里卡多,因为他已经提供了你的答案,他应该尝试提供一些解释。
  • @EuanSmith 你说得对,我应该提供更多信息。希望 mdn 文档有足够的信息来阐明 Onur Hangul,如果没有,请告诉我,我将提供一些代码示例的解释。
猜你喜欢
  • 1970-01-01
  • 2015-05-04
  • 2017-01-09
  • 2012-01-18
  • 2016-04-12
  • 2013-07-14
  • 2015-10-06
  • 1970-01-01
相关资源
最近更新 更多