Javascript 查找n和数组中是否存在X数
我想找到下面给定的数组中是否存在x号。为了查找内部的x数,数组的任何元素都可以生成给定的x数。这是基于元素的内部数组,并检查它是否存在。这不像是促销和组合Javascript 查找n和数组中是否存在X数,javascript,algorithm,Javascript,Algorithm,我想找到下面给定的数组中是否存在x号。为了查找内部的x数,数组的任何元素都可以生成给定的x数。这是基于元素的内部数组,并检查它是否存在。这不像是促销和组合 let arrr = [ 4, 7, 6, 2, 7, 6 ]; 示例:如果X=16,则结果应为[4,6,6]=16(真) 例如: 如果X=11,则结果应为[4,7]=11(真) 示例:如果X=18 那么结果应该是[4,6,6,2]=18(真) 它没有经过优化,但可以工作: func
let arrr = [
4,
7,
6,
2,
7,
6
];
- 示例:如果X=16,则结果应为[4,6,6]=16(真)
- 例如: 如果X=11,则结果应为[4,7]=11(真)
- 示例:如果X=18 那么结果应该是[4,6,6,2]=18(真)
function Contains(array, value) {
const str = array.reduce((p, c) => p + c.toString(), "");
const fn = function (active, rest, a) {
const sum = rest.split("").reduce((p, c) => p + Number(c), 0);
if (sum === value) return true;
if (!active && !rest) return;
if (!rest) {
a.push(active);
} else {
if (fn(active + rest[0], rest.slice(1), a) === true) return true;
if (fn(active, rest.slice(1), a) === true) return true;
}
return a;
}
const result = fn("", str, []) === true;
return result === true;
}
Contains(array, value)
对于
X=16
您可以得到下一个结果,这两个结果都满足条件:[7,7,2]
或[4,6,6]
,您有什么理由选择[4,6,6]
或任何结果都可以?还有,你试过什么吗?在这种情况下,请将其添加到问题中。是->任何结果都可以。我试过,但没有为(让I=0;我想知道实现给定算法的最佳方法。你的问题是另一个问题的简单版本。只需简单的修改,你的问题就解决了。