【问题标题】:JS: Print main diagonal of array using array methodsJS:使用数组方法打印数组的主对角线
【发布时间】:2017-10-27 08:06:02
【问题描述】:

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


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

【问题讨论】:

标签: javascript arrays methods cycle


【解决方案1】:

你可以使用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);

【讨论】:

    【解决方案2】:

    您可以使用数组方法来获得相同的结果,但它们无论如何都在内部使用 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);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      相关资源
      最近更新 更多