javascript array.push(array.push(x))奇怪的结果

javascript array.push(array.push(x))奇怪的结果,javascript,arrays,push,Javascript,Arrays,Push,下面是leetcode组合问题的解决方案。基本上,n选择k,返回所有可能性。我在第二个for循环中遇到了这个问题 tmpResult[i].push(n); result.push(tmpResult[i]); 如果我这样做 result.push(tmpResult[i].push(n)); 结果非常不同,我得到一个错误: 第22行:TypeError:tmpResult[i]。推送不是一个函数。 我来自java世界,javascript与上面的两行代码有什么不同 var combine

下面是leetcode组合问题的解决方案。基本上,n选择k,返回所有可能性。我在第二个for循环中遇到了这个问题

tmpResult[i].push(n);
result.push(tmpResult[i]);
如果我这样做

result.push(tmpResult[i].push(n));
结果非常不同,我得到一个错误: 第22行:TypeError:tmpResult[i]。推送不是一个函数。 我来自java世界,javascript与上面的两行代码有什么不同

var combine = function(n, k) {
    if (k === 0 || k > n)
        return [];

    var result = [];

    if (k === 1) {
        for (var i = 1; i <= n; i++) {
            result.push([i]);
        }
        return result;
    }
    // choose n
    var tmpResult = combine(n-1,k-1);

    for( var i = 0; i < tmpResult.length; i++) {
        tmpResult[i].push(n);
        result.push(tmpResult[i]);
        // below doesnt work
        // result.push(tmpResult[i].push(n));
    }

    // not choose n
    result = result.concat(combine(n-1, k));

    return result;
};
var combine=函数(n,k){
如果(k==0 | | k>n)
返回[];
var结果=[];
如果(k==1){
对于(var i=1;i

push()方法将一个或多个元素添加到数组的末尾,然后 返回数组的新长度

您正在将数组的长度添加到
result
,这就是
result.push(tmpResult[i].push(n));
不起作用的原因。

push()方法将一个或多个元素添加到数组的末尾,然后 返回数组的新长度


您正在将数组的长度添加到
result
,这就是
result.push(tmpResult[i].push(n))的原因
不起作用。

方法推送返回数组的新大小,而不是数组本身

方法推送返回数组的新大小,而不是数组本身

谢谢,我应该更仔细地查看api!谢谢,我应该更仔细地查看api!谢谢,我应该更仔细地查看api!谢谢,我应该更仔细地看api!