Итак, я потратил некоторое время на выполнение этой головоломки, и, наконец, у меня правильный вывод на консоль.Я новичок в использовании методов JavaScript, и мне сложнее всего понять, почему this.columns
является undefined
.
Вот мой код:
export var Matrix = function(matrix) {
var self = this
let splitMatrix = matrix.split("\n")
self.rows = splitMatrix.map(function(row){return row.split(" ").map( Number )})
self.columns = self.rows[0].forEach(function(index){
self.rows.map(function(column){
console.log(column[index])
})
});
}
Конкретный тестовый пример Iя пытаюсь передать здесь:
test('can extract column from non-square matrix', () => {
expect(new Matrix('1 2 3\n4 5 6\n7 8 9\n8 7 6').columns[2]).toEqual([3, 6, 9, 6]);
});
Матрица представляет собой строку, разделенную \n
.Это даст вам некоторое представление о том, почему у меня такой код, как у меня.
Вот мой вывод на консоль.
console.log matrix.js:7
1
console.log matrix.js:7
4
console.log matrix.js:7
7
console.log matrix.js:7
8
console.log matrix.js:7
2
console.log matrix.js:7
5
console.log matrix.js:7
8
console.log matrix.js:7
7
console.log matrix.js:7
3
console.log matrix.js:7
6
console.log matrix.js:7
9
console.log matrix.js:7
6
Все хорошо и просто ... кроме фактачто self.columns === undefined
Это очевидный вопрос, но я полностью упускаю его.