代码之家  ›  专栏  ›  技术社区  ›  Borgher

试图理解映射方法背后的逻辑

  •  0
  • Borgher  · 技术社区  · 2 年前

    我试图理解在映射函数(如推、切片等)中使用数组方法的逻辑。下面,我有一个函数,试图在2D数组的中间添加一个元素,但结果完全是空白。不确定我错过了什么

    function array () {
    
    let numbers = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    // Attempted outcome = [[1, 2, "Hello", 3], [4, 5, "Hello", 6], [7, 8, "Hello", 9]]
    
    let newNumbers = numbers.map(function (row) {
      return [row.slice(2, 0, "Hello")]
    })
    
    Logger.log(newNumbers);
    
    }
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   Tanaike    2 年前

    在你的脚本中,下面的修改怎么样?

    发件人:

    let newNumbers = numbers.map(function (row) {
      return [row.slice(2, 0, "Hello")]
    })
    

    let newNumbers = numbers.map(function (row) {
      row.splice(2, 0, "Hello");
      return row;
    });
    

    或者,在这种情况下,可以使用以下修改。

    let newNumbers = numbers.map(([a, b, ...c]) => [a, b, "Hello", ...c]);
    

    测试:

    let numbers = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    // Attempted outcome = [[1, 2, "Hello", 3], [4, 5, "Hello", 6], [7, 8, "Hello", 9]]
    
    let newNumbers = numbers.map(function (row) {
      row.splice(2, 0, "Hello");
      return row;
    });
    
    console.log(newNumbers);

    参考: