JS:使用数组方法打印数组的主对角线

时间:2017-10-27 08:06:03

标签: javascript arrays methods cycle

如何在不使用循环(...)的情况下打印数组的主对角线,而是使用数组方法?

 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或其他方法打印它们吗?

2 个答案:

答案 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);