File tree Expand file tree Collapse file tree 1 file changed +14
-11
lines changed Expand file tree Collapse file tree 1 file changed +14
-11
lines changed Original file line number Diff line number Diff line change 1
1
export class Matrix {
2
2
constructor ( string ) {
3
- this . matrix = string ;
4
- this . firstLineNumber = new RegExp ( / ^ ( [ 0 - 9 ] + ) / gm)
5
- this . leadingWhitespace = new RegExp ( / ^ [ \t ] + / gm)
3
+ this . _rows = this . splitInRows ( string )
4
+ this . _columns = this . splitInColumns ( string )
6
5
}
7
6
8
- splitInRows ( stringMatrix ) {
9
- return stringMatrix . split ( '\n' ) . map ( entry => entry . split ( ' ' ) . map ( entry => parseInt ( entry , 10 ) ) )
7
+ splitInRows ( matrix ) {
8
+ return matrix . split ( '\n' ) . map ( entry => entry . split ( ' ' ) . map ( entry => parseInt ( entry , 10 ) ) )
10
9
}
11
10
12
- splitInColumns ( stringMatrix ) {
11
+ splitInColumns ( matrix ) {
12
+ const firstLineNumber = new RegExp ( / ^ ( [ 0 - 9 ] + ) / gm)
13
+ const leadingWhitespace = new RegExp ( / ^ [ \t ] + / gm)
13
14
const columns = [ ]
14
15
15
- let matrixToWorkOn = stringMatrix
16
+ let matrixToWorkOn = matrix
17
+
16
18
while ( matrixToWorkOn . trim ( ) . length ) {
17
- const column = matrixToWorkOn . match ( this . firstLineNumber ) . map ( entry => parseInt ( entry , 10 ) )
19
+ const column = matrixToWorkOn . match ( firstLineNumber ) . map ( entry => parseInt ( entry , 10 ) )
18
20
columns . push ( [ ... column ] )
19
- matrixToWorkOn = matrixToWorkOn . replace ( this . firstLineNumber , '' ) . replace ( this . leadingWhitespace , '' )
21
+
22
+ matrixToWorkOn = matrixToWorkOn . replace ( firstLineNumber , '' ) . replace ( leadingWhitespace , '' )
20
23
}
21
24
return columns
22
25
}
23
26
24
27
get rows ( ) {
25
- return this . splitInRows ( this . matrix )
28
+ return this . _rows
26
29
}
27
30
28
31
get columns ( ) {
29
- return this . splitInColumns ( this . matrix )
32
+ return this . _columns
30
33
}
31
34
}
You can’t perform that action at this time.
0 commit comments