小编Pmc*_*rea的帖子

Array.push() 和 Spread 语法之间的区别

算法问题陈述:找到加起来等于目标总和的最小数组。

代码问题: 我不明白以下情况下结果的差异:

  • 使用 arr.push() 方法

  • 使用扩展语法

请参考下面的评论行。

Spread 语法返回正确的解决方案,而 .push() 方法继续推送到同一个数组。我不明白为什么它不断引用内存中的同一数组。

提前谢谢了!

let howSum = (target, arr, memo = {}) => {
    if (target in memo) return memo[target];
    if (target === 0) return [];
    if (target < 0) return null;

    let smallest = null;

    for (let e of arr) {
        if (howSum(target - e, arr, memo) !== null) {
            let result = howSum(target - e, arr, memo);
            // result.push(e);
            result = [...result, e];

            if (smallest === null …
Run Code Online (Sandbox Code Playgroud)

javascript arrays algorithm dynamic-programming ecmascript-6

6
推荐指数
1
解决办法
9380
查看次数