const arr = [
[ 2, 7, 2, 9, 7, 6 ],
[ 2, 5, 4, 5 ],
[ 2, 1, 5, 4, 6, 0, 3 ],
[ 3, 1, 2 ],
];
const [ val, iRow, iCol ] = arr.reduce(
(min, n, i) => (
n.forEach((m, j) => m < min[0] && (min = [ m, i, j ])),
min
),
[ Infinity, -1, -1 ]
);
UPD. Если нужно обрабатывать массивы произвольной размерности, можно применить рекурсию:
const arr = [
[ 2, 7, 2, [ 5, [ 4, [ 3 ], 2 ] ] ],
[ 2, 5, [ 2, 6, 5, 2 ], 4 ],
[ 2, 1, [ [ [ 9, 0, 1 ], [ [ [ 1 ] ] ], -1 ] ], 5 ],
[ 3, 1, 2 ],
];
const minWithIndex = arr =>
arr.reduce((min, n, i) => (
n = Array.isArray(n) ? minWithIndex(n) : [ n, [] ],
n[1].unshift(i),
n[0] < min[0] ? n : min
), [ 1/0, [] ]);
const [ val, indices ] = minWithIndex(arr);