Вы умножаете значение на функциональный объект :
result +=
(-1) ** (1 + i) *
mat.result[1][i] * // Here
function() { // ..
for (t = 1; t <= k; t++) {
for (p = 1; p <= k; p++) {
if (t != 1 || p != i) {
temp.push(mat.result[t][p]);
}
return det(matrix(k - 1, k - 1, temp));
}
}
}; // Note no () calling it
Обработка функционального объекта как числа приводит к NaN
:
var a = 1 * function() { };
console.log(a);
Возможно, вы хотели это назвать (поставив ()
в конце).Непонятно, почему вам нужно определить его встроенным образом.
Примечание: ваш код становится жертвой того, что я называю Ужас неявных глобалов .Вы должны объявить свои переменные в самой внутренней области, где они вам нужны.Я не вижу объявлений для t
, i
, j
, p
... Настоятельно рекомендую использовать строгий режим , чтобы он отображался как ошибка.