Javascript JS:在表示表数据的嵌套数组中添加和删除元素
有一个嵌套数组,它应该表示一些表数据:Javascript JS:在表示表数据的嵌套数组中添加和删除元素,javascript,arrays,nested,Javascript,Arrays,Nested,有一个嵌套数组,它应该表示一些表数据: var array = [ [ "r1c1", "r1c2", "r1c3" ], [ "r2c1", "r2c2", "r2c3" ], [ "r3c1", "r3c2", "r3c3" ] ] 现在我需要操纵数组结构以 添加新列或行(例如,第一列和第二列之间的新列) 删除特定的行或列 删除一行应该非常简单 array.splice(index, 1); 要删除列,我认为必须遍历数组: array.forEach(row
var array = [
[ "r1c1", "r1c2", "r1c3" ],
[ "r2c1", "r2c2", "r2c3" ],
[ "r3c1", "r3c2", "r3c3" ]
]
现在我需要操纵数组结构以
array.splice(index, 1);
要删除列,我认为必须遍历数组:
array.forEach(row => {
row.splice(index, 1);
});
但我认为这里缺少了一些东西
我的主要问题是添加行或列:要添加新行,我可以使用array.push([“new”、“new”、“new”])
或array.unshift([“new”、“new”、“new”])
,但如何在这两者之间添加行呢
预期结果
添加索引为1的行应导致:
array = [
[ "r1c1", "r1c2", "r1c3" ],
["new", "new", "new"],
[ "r2c1", "r2c2", "r2c3" ],
[ "r3c1", "r3c2", "r3c3" ]
]
array = [
[ "r1c1", "new", "r1c2", "r1c3" ],
[ "r2c1", "new", "r2c2", "r2c3" ],
[ "r3c1", "new", "r3c2", "r3c3" ]
]
添加索引为1的列应导致:
array = [
[ "r1c1", "r1c2", "r1c3" ],
["new", "new", "new"],
[ "r2c1", "r2c2", "r2c3" ],
[ "r3c1", "r3c2", "r3c3" ]
]
array = [
[ "r1c1", "new", "r1c2", "r1c3" ],
[ "r2c1", "new", "r2c2", "r2c3" ],
[ "r3c1", "new", "r3c2", "r3c3" ]
]
您可以使用以下功能:
var arr = [ "r1c1", "r1c2", "r1c3" ];
// delete 0 elements and then add "new" element at 1 position
arr.splice(1, 0, "new");
console.log(arr); [ "r1c1", "new", "r1c2", "r1c3" ];
所以它可能看起来像:
var array = [
[ "r1c1", "r1c2", "r1c3" ],
[ "r2c1", "r2c2", "r2c3" ],
[ "r3c1", "r3c2", "r3c3" ]
];
// adding column
array.forEach(arr => arr.splice(1, 0, "new"));
// adding row
array.splice(1, 0, ["new", "new", "new"])
您可以为所有操作创建一个函数
n
是插入或删除的位置列行
是列
或行
更改
可以是添加
或删除
insert
是可选参数var数组=[
[“r1c1”、“r1c2”、“r1c3”],
[“r2c1”、“r2c2”、“r2c3”],
[“r3c1”、“r3c2”、“r3c3”]
];
函数addColumn(n,col_行,change,insert='new'){
如果(列的行=='列'){
forEach(函数(e,i){
如果(更改=‘添加’){
e、 拼接(n,0,插入);
}否则,如果(更改=‘删除’){
e、 拼接(n,1);
}
})
}否则{
if(change=='add')数组拼接(n,0,insert);
if(change=='delete')数组拼接(n,1);
}
console.log(数组)
}
addColumn(1,'column','add','Lorem ipsum')
添加列(2,‘列’、‘删除’)
addColumn(2,'row','add',Array(3).fill('new'))
因此要保持它的通用性1
应该是一个变量(index
),而0
是index-1
?@user3142695否,1
应该是index
,而0
应该是0
(因为您不想删除任何元素)