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
    (因为您不想删除任何元素)