Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bd51472

Browse files
author
programmiri
committed
Refactore solution to task matrix
1 parent 3173c55 commit bd51472

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

‎matrix/matrix.js‎

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,34 @@
11
export class Matrix {
22
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)
65
}
76

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)))
109
}
1110

12-
splitInColumns(stringMatrix) {
11+
splitInColumns(matrix) {
12+
const firstLineNumber = new RegExp(/^([0-9]+)/gm)
13+
const leadingWhitespace = new RegExp(/^[\t]+/gm)
1314
const columns = []
1415

15-
let matrixToWorkOn = stringMatrix
16+
let matrixToWorkOn = matrix
17+
1618
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))
1820
columns.push([... column])
19-
matrixToWorkOn = matrixToWorkOn.replace(this.firstLineNumber, '').replace(this.leadingWhitespace, '')
21+
22+
matrixToWorkOn = matrixToWorkOn.replace(firstLineNumber, '').replace(leadingWhitespace, '')
2023
}
2124
return columns
2225
}
2326

2427
get rows() {
25-
return this.splitInRows(this.matrix)
28+
return this._rows
2629
}
2730

2831
get columns() {
29-
return this.splitInColumns(this.matrix)
32+
return this._columns
3033
}
3134
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /