JS:使用数组方法打印数组的主对角线
JS: Print main diagonal of array using array methods
如何在不使用循环 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 或其他方法打印它们?
您可以使用数组方法来获得相同的结果,但无论如何它们都在内部使用 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);
您可以使用 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);
如何在不使用循环 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 或其他方法打印它们?
您可以使用数组方法来获得相同的结果,但无论如何它们都在内部使用 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);
您可以使用 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);