用js實現陣列的轉置

2022-02-25 01:12:58 字數 1361 閱讀 9046

遇見乙個題目,如下

var obj =;

spiltgroup(obj);

//[[1,4,7],[2,5,8],[3,6]]

這個相當於是實現乙個轉置的功能,但是又還是存在區別的先來看看陣列的轉置

var arr1=[

[1,2,3

],  [

4,5,6

],  [

7,8,9]]

var arr2=[

[1,4,7

],  [

2,5,8

],  [

3,6,9

]]

這兩個題目的區別,大家應該看到了,陣列的轉置,這個算是很簡單的,應該這個陣列,每一行的位數是一樣的,要麼是個正方形的陣列,要麼是個長方形的陣列 

但是看看第乙個題目,每一行的陣列的位數,是不一樣的。 

先來看看陣列的轉置,從思路分析,到底遇到這種問題,該如何去著手 

第一步:我們需要建立乙個新的陣列,這個陣列的元素還是陣列,我們要知道這個陣列,有多少個元素

var arr1=[

[1,2,3

],  [

4,5,6

],  [

7,8,9]]

vararr2

for(var i=0;i0].length;i++)

console.log(arr2)

//[ ,, ]

因為陣列的每一行都是相同的,所以我們直接可以取到arr[0]的長度,即可 

第二步:我們迴圈一次,輸出每一行陣列,然後再迴圈一次,找出陣列每一行的東西。行列交換

for (var i = 0; i < arr.length; i++) 

}

也是陣列的轉置的寫法,蠻新奇的

var arr =[

[2, 4, 6

],  [

8, 9, 0

],  [

9, 6, 2]];

var newarray = arr[0

].map(function(col, i) )

});console.log(newarray)

這個方法很簡潔,這個具體也說不出來,自己去執行,把每一步列印出來,就知道是什麼回事了

再來整整第乙個題目,由於他不是嚴格意義上的陣列,因此,以上兩種方法是不適合的,我仿照第二種的寫法,最後實現了這功能

"en

">

總結:最大的感受就是,陣列的一些方法,一定要是非常的熟悉,而且,當這些方法的巢狀層次比較深的時候,比如說,先用map,再用filter等等啥的,你要有個清晰的認知,不能混淆

java實現陣列的轉置

分析 所謂轉置就是把行變位列,把列變為行。我們就可以用兩個for迴圈遍歷陣列,然後交換array i j 與array j i 注意,遍歷陣列時不可以全部遍歷,這樣會使行和列的資料交換兩次,如下 public void transpose system.out.println 轉置前 for int...

用python實現矩陣轉置

前幾天群裡有同學提出了乙個問題 手頭現在有個列表,列表裡面兩個元素,比如 1,2 之後不斷的新增新的列表,往原來相應位置新增。例如新增 3,4 使原列表擴充為 1,3 2,4 再新增 5,6 擴充為 1,3,5 2,4,6 等等。其實不動腦筋的話,用個二重迴圈很容易寫出來 def trans m a...

python實現轉置矩陣 用Python轉置矩陣?

轉置矩陣意味著我們將其列變為行。讓我們通過乙個例子來理解它,如果轉置後看起來像什麼。假設您有原始矩陣,例如 x 1,2 3,4 5,6 在上面的矩陣 x 中,我們有兩列,分別為1 3 5和2 4 6。因此,當我們在矩陣 x 上方轉置時,列變為行。因此,上面矩陣的轉置版本看起來像 x1 1,3,5 2...