gpt4 book ai didi

javascript - 检查数组中任何元素的总和是否等于给定值

转载 作者:行者123 更新时间:2023-12-03 00:53:45 24 4
gpt4 key购买 nike

[1,2,3,6], 3 = True <== 1+2=3
[1,2,3,6], 9 = True <== 3+6=9
[1,2,3,6], 5 = True <== 2+3=5
[1,2,3,6], 10 = False <== 1+2, 2+3, 3+6, 6+1 not equal to 10
[6,2,3,1], 10 = False <== 6+2, 2+3, 3+1, 1+6 not equal to 10
[6,3,3,1], 6 = True <== 3+3=6

首选 JavaScript
如果给定的总和等于数组中任意两个元素的总和,函数需要返回 true;否则函数需要返回 false。

最佳答案

这是一种非常简单的方法,可以检查数组中的两个数字是否等于某个值。请注意,这仅允许不同求和(与自身相加的数字不算在内)。

function test(n, arr){
return arr.some((item, i) => arr.slice(i+1).includes(n-item))
}

let arr = [1, 2, 3, 6]

console.log(test(5, arr)) // true 2+3
console.log(test(4, arr)) // true 1+3
console.log(test(12, arr)) // false because 6 + 6 doesn't count
console.log(test(10, arr)) // false no sums

如果数组都是正数,您可以为短路情况添加额外的测试,而这种情况不可能是真的:

 return arr.some((item, i) => n > item && arr.slice(i+1).includes(n-item))

如果您想让数字与它们的水平相加,只需对整个数组进行测试:

 return arr.some((item, i) => arr.includes(n-item))

关于javascript - 检查数组中任何元素的总和是否等于给定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52938898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com