Javascript 是否有更好的方法将列添加到二维数组
我有一个二维数组Javascript 是否有更好的方法将列添加到二维数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个二维数组 var textarray = [[{ text: 'Content 1' }, { text: 'Content 2' }], [{ text: 'Content 3' }, { text: 'Content 4' }]]; 我有一个方法可以将列添加到右边的矩阵中,如下所示 insertColumnAtRight() { for (var i = 0; i < this.textarray.length; i++) {
var textarray = [[{ text: 'Content 1' }, { text: 'Content 2' }],
[{ text: 'Content 3' }, { text: 'Content 4' }]];
我有一个方法可以将列添加到右边的矩阵中,如下所示
insertColumnAtRight() {
for (var i = 0; i < this.textarray.length; i++) {
this.textarray[i].push({ text: "" });
}
}
insertColumnAtRight(){
对于(var i=0;i
是否有更好或更短的方法将列添加到二维数组?您可以使用以下方法使代码更简洁:
希望这就是您想要的。使用
map
和concat
将简化
var textarray=[
[{text:“Content 1”},{text:“Content 2”}],
[{text:“Content 3”},{text:“Content 4”}],
];
const res=textarray.map((arr)=>arr.concat({text:}));
控制台日志(res)代码>虽然它较短,但它确实比经典的for
循环使用了更多内存。您的解决方案会因为.map()
而创建一个新数组,然后会因为.concat()
而为每一行创建一个新数组。因此,在结果中,不只是在现有矩阵中添加一个新列,而是创建另一个具有一个以上列的矩阵。我不知道OP是否关心这个问题,但我认为值得指出。@SebastianKaczmarek,没错。好的观点,谢谢你提供的细节。此解决方案的另一个目的是避免数据突变(避免更新原始数据)
textarray.forEach(element => element.push({ text: "" }));