【发布时间】:2018-05-06 12:01:01
【问题描述】:
我有一个这样的数组(二维矩阵):
var matrix = [
'0000',
'1100',
'1100'
]
...而且我想在特定位置添加行和列。 请参阅下面的示例 - 在索引 (x) 0 处添加 col 和 在索引 (y) 0 处添加行。
var matrix = [ var result = [
'0000', '00000',
'1100', add col --> '01100',
'1100' '01100'
] ]
和...
var matrix = [ var result = [
'0000', '0000',
'1100', '0000',
'1100' add row --> '1100',
'1100'
] ]
有没有更好/优雅的方法来获得这个结果,而不是使用愚蠢的 for 循环? (下面的示例)
var matrix = [
'0000',
'1100',
'1100',
]
function add_col(matrix, x) {
for (var i=0; i<matrix.length; i++) {
matrix[i] = matrix[i].slice(0, x) + "0" + matrix[i].slice(x);
}
return matrix.join('\n')
}
console.log(add_col(matrix, 0))
【问题讨论】:
-
IMO 愚蠢的
for循环将是选项中性能最高的。所以优雅的方法是将它包装在一个函数中。 -
你可以使用
Array#map或Array#forEach -
我投票决定将此问题作为题外话结束,因为关于改进编程风格的问题对于 CodeReview.stackexchange.com 来说更为热门。
-
使用 map 可能看起来更优雅,但并不快:
matrix.map(row => row.slice(0, x) + "0" + row.slice(x));- 如果您想经常更新矩阵,我会使用数字数组而不是字符串。
标签: javascript arrays string matrix col