JSFiddle - React, Tailwind, and code Playground
JavaScript
function det(m){
var size = Math.sqrt(m.length);
if (size % 1 !== 0) {
return null;
}
if (size === 2) {
return m[0] * m[3] - m[1] * m[2];
}
return m.slice(0, size).reduce(function(t, v, i) {
var sub = [];
for (var r = size; r < m.length; r += size) {
sub = sub.concat(
m.slice(r, r + i),
m.slice(r + i + 1, r + size)
);
}
return t + (i % 2 === 0 ? -1 : 1) * v * det(sub);
}, 0);
}
var matrix = [
1,2,4,2,-1,3,4,0,1
];
console.log(det(matrix));