所以我试图写一个程序来查找所有可能的单词中的字母排列(顺序)作为我的代数老师的笑话。这是我从在课间写,但是当我运行它(在的NodeJS,但它是相当香草JS这样的平台不应该的问题)我得到这是为什么返回undefined?
TypeError: Cannot call method 'forEach' of undefined
在
letters.forEach(function (str) {
代码:
var name = ['w', 't', 'f', 'a', 'r', 'e', 'm', 'y', 'i', 'n', 'i', 't', 'i', 'a', 'l', 's'];
var permutations = [];
function add_letter(letter, letters) {
var full = [];
letters.forEach(function (str) {
full.push(letter + str);
});
return full;
}
function generate_permutation(letters) {
for (i=0; i<letters.length; i++) {
return add_letter(letters[i], generate_permutation(letters.slice(1, letters.length)));
}
}
permutations = generate_permutation(name);
console.log(permutations);
(我决定这个JS中的唯一原因是我需要实践节点,因为我要在它即将开始一个相当大的项目)
谢谢!
'字母'对象为空或未定义。确保它是有效的 – HICURIN
请注意,您的for循环没有用,因为您在第一次迭代时返回。它相当于'var i = 0; return add_letter(...)' – slebetman
'wtf是我的名字首字母缩写'是我是对的,还是我是对的?这就是'letters'字符串所说的 – Markasoftware