javascript - JS : Adding and removing elements in nested array, 代表表数据

标签 javascript arrays nested

有一个嵌套数组,它应该代表一些表数据:

var array = [ 
    [ "r1c1", "r1c2", "r1c3" ], 
    [ "r2c1", "r2c2", "r2c3" ],
    [ "r3c1", "r3c2", "r3c3" ] 
]

现在我需要操作数组结构

  1. 添加新列或行(例如在第一列和第二列之间添加新列)
  2. 删除特定行或列

删除一行应该非常简单

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/

相关文章:

javascript - 按频率排序数组

java - 数组真的是齐次的吗?

java - 从 ArrayList 中删除重复项的算法

C++ If/else/嵌套问题

python - 如何根据 Python 中另一个列表的(子列表)索引对列表进行分区

javascript - 如何扩展对象数组中的子数组并删除字符串某些元素

javascript - 如何在 MAC Safari 浏览器中使用 Javascript 获取 PC 的本地 IP 地址?

Python:展平内部列表时保留外部列表

javascript - Sencha Touch 2 推送通知

javascript - JQuery Mobile 和 Scala.js : How to call functions like "navbar()" or "toolbar()"?