Google 表格中 MIN() 的自定义数组函数

Custom array function for MIN() in Google Sheets

由于 Sheets 中的 MIN() 函数只有 return 一个值,并且无法使其与 ARRAYFORMULA 一起使用,我想制作一个自定义函数,该函数将接受两个数组并比较值在每个条目中,return 一个最小值数组。 (我知道有一个使用 QUERY 的解决方法,但它对我的目的不起作用)

我现在拥有的是一行两个数组,并且可以完美地工作。不幸的是,当引入多行时它会中断。我不确定为什么,所以我迷失了如何前进。如何让它适用于任何大小的数组?

当我给它输入任何二维范围时,它会抛出一个错误:

"TypeError: Cannot set property '0' of undefined"

这条线finalarray[x][y] = Math.min(arr1[x][y], arr2[x][y]);

当前“"working"”代码:

function MINARRAY(arr1, arr2) {
  if (arr1.length == arr2.length && arr1[0].length == arr2[0].length)
  {    
      var finalarray = [[]];

      for (x = 0; x < arr1.length; x++)
      {     
        for(y = 0; y < arr1[x].length; y++)
        {
          finalarray[x][y] = Math.min(arr1[x][y], arr2[x][y]);
        }            
      }  
      return finalarray;   
  } 
  else
  {    
    throw new Error("These arrays are different sizes");    
  }
}

finalarray 是一个二维数组。 [[]] 仅将 finalarray 的第一个元素设置为数组。需要将finalarray的所有元素设置为一个数组。在循环内,添加

finalarray[x]=[]//set `x`th element as a array or finalarray[x]= finalarray[x] || []
finalarray[x][y] = Math.min(arr1[x][y], arr2[x][y]);      

或者,

finalarray[x] = [Math.min(arr1[x][y], arr2[x][y])]