如何在不使用循环(...)的情况下打印数组的主对角线,而是使用数组方法?
const arr = [
[1,6,8,-1],
[0,2,-6,5],
[0,-5,3,6],
[9,-1,1,0] ];
这里元素arr [0] [0] = 1,arr [1] [1] = 2,arr [2] [2] = 3,arr [3] [3] = 0是主要对角线的元素。我们可以使用循环打印它们:
for (let i=0;i<arr.length;i++)
{
console.log(arr[i][i]);
}
但是有可能使用.forEach .map或其他方法打印它们吗?
答案 0 :(得分:0)
您可以使用数组方法获得相同的结果,但它们仍然在内部使用for循环,在这种情况下,单个for循环对我来说更具可读性。
然而,如果你真的想,你可以这样做:
const arr = [
[1,6,8,-1],
[0,2,-6,5],
[0,-5,3,6],
[9,-1,1,0] ];
const result = arr.map((sub_array, index) => sub_array.filter((number, index2) => index === index2));
console.log(result);
答案 1 :(得分:0)
你可以使用Array.prototype.map,但基本上他们使用内部循环:
var a = [
[1,6,8,-1],
[0,2,-6,5],
[0,-5,3,6],
[9,-1,1,0] ];
var r = a.map((v, i) => v[i]);
console.log(r);