有一个嵌套数组,它应该代表一些表数据:
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" ]
]
添加索引 = 1 的列 应该会导致:
array = [
[ "r1c1", "new", "r1c2", "r1c3" ],
[ "r2c1", "new", "r2c2", "r2c3" ],
[ "r3c1", "new", "r3c2", "r3c3" ]
]
最佳答案
您可以使用Array.prototype.splice()功能:
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"])
关于javascript - JS : Adding and removing elements in nested array, 代表表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40551820/