当然,这已经是一个漫长的一周的结束了,我的大脑被炸了,但是我为此感到无所适从。为什么当options.length是函数参数并将其传递给数组参数(assortment)时,为什么会出现关于的错误?

(我正在尝试提出一种递归解决方案,以提供数组中各种字符的排列(允许重复))

var n = 10;
var assortment = ['a','b','c','d','e'];
console.log(permutations(n, assortment));

function permutations (num, options) {
    var solutions = [];
    var singleSet = [];
    if (singleSet.length === num) {
        solutions.push(singleSet);
        return;
    } else {
        for (var i=0; i < options.length; i++) {
            singleSet = singleSet.concat(permutations(options[i]));
        }
    }
    return solutions;
}

最佳答案

您仅在此处传递一个参数:

    singleSet = singleSet.concat(permutations(options[i]));

关于javascript - 为什么我得到这个“无法读取未定义的属性”长度”? (JavaScript),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30419263/

10-13 00:13