Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果循环中满足条件,则求和数组_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 如果循环中满足条件,则求和数组

Javascript 如果循环中满足条件,则求和数组,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在使用下面的代码创建一个表。它很好用 我的最终目标是为“取消优先级”添加一个小计。因为我已经在循环表了,所以我想利用现有的循环。(不循环数组中的每个值,我担心这会减慢代码的速度) 例如,如果我的表是: [A,de-prioritized,2,1,0,0,1], [B,de-prioritized,0,2,1,1,0], [C,other,0,5,2,1,1] 我想得到:[2,3,1,1,1](作为[2,1,0,0,1]+[0,2,1,1,0]的和) 换句话说:假设我有一张表A1:F10。在

我正在使用下面的代码创建一个表。它很好用

我的最终目标是为“取消优先级”添加一个小计。因为我已经在循环表了,所以我想利用现有的循环。(不循环数组中的每个值,我担心这会减慢代码的速度)

例如,如果我的表是:

[A,de-prioritized,2,1,0,0,1],
[B,de-prioritized,0,2,1,1,0],
[C,other,0,5,2,1,1]
我想得到:[2,3,1,1,1](作为[2,1,0,0,1]+[0,2,1,1,0]的和)

换句话说:假设我有一张表A1:F10。在A中有一个标志(无论是否为“取消优先级”),而在B1:F10中有一些值。我想复制每个列中的公式:SUMIF(A1:A10,“取消优先级”,B1:B10),SUMIF(A1:A10,“取消优先级”,C1:C10),SUMIF(A1:A10,“取消优先级”,D1:D10)等等。我无法设置公式,因为上面示例中的范围是动态的。我试图在脚本中用sumif设置公式1c1,但没有成功

我发现了一个类似的问题,但我可能有n个数组要求和,我无法将解决方案应用到我的解决方案中:

现行守则:

  var l = sheet2.getRange('A1').getValue();
  for (var i = 0; i<l ;i++) {
    if (sheet3.getRange(i+3,2).getValue() == 'de-prioritized') { 
      sheet3.getRange(i+3,1,1,sheet3.getLastColumn()).setBackgroundRGB(250, 240, 230);
    } else sheet3.getRange(i+3,1,1,sheet3.getLastColumn()).setBackgroundRGB(225, 247, 232)
  }
var l=sheet2.getRange('A1').getValue(); 对于(var i=0;i
  • 您想使用谷歌应用程序脚本从
    [[“A”,“取消优先级”,2,1,0,0,1],“B”,“取消优先级”,0,2,1,1,0],“C”,“其他”,0,5,2,1,1],
    中检索
    [2,3,1,1],
示例脚本:
  • 您想使用谷歌应用程序脚本从
    [[“A”,“取消优先级”,2,1,0,0,1],“B”,“取消优先级”,0,2,1,1,0],“C”,“其他”,0,5,2,1,1],
    中检索
    [2,3,1,1],
示例脚本:
我必须为我糟糕的英语技能道歉。我能理解我想要的
:[2,3,1,1,1](作为[2,1,0,0,1]+[0,2,1,1,0]的总和)
。但是我无法从脚本中了解您的目标。我可以问一下您的目标和脚本之间的关系吗?我现有的脚本正在处理格式。假设我有一个表A1:F10。在a中有一个标志(无论是否“取消优先级”),而B1:F10中有值。我想复制每列中的公式:SUMIF(A1:A10,“取消优先级”,B1:B10),SUMIF(A1:A10,“取消优先级”,C1:C10),SUMIF(A1:A10,“取消优先级”,D1:D10)等等。澄清一下:我不想完全复制sumif公式。我希望脚本得到与B11:F11范围内公式相同的结果。感谢您的回答。我认为
[A,去优先级,2,1,0,0,1]
的值可能与您的回答不同。从您的问题中,我了解到“B”列具有取消优先级的
值。在我的示例脚本中,使用了该值。而且,我无法理解您公式的详细信息。这是由于我的技能差。我对此深表歉意。为了正确理解您的问题,您能否提供您期望的电子表格的示例输入和输出值?通过此,我将uld希望修改脚本。如果您能合作解决您的问题,我很高兴。感谢您的帮助。我如何向您提供示例输入?我将用此示例再试一次(每个逗号分隔列).输入:行1:A,取消优先级,2,1,0,0,1行2:B,取消优先级,0,2,1,1,0行3:C,其他,5,2,0,0,0,1行4:D,取消优先级,0,0,1,1,2我想要第5行的输出:总计,取消优先级,2,3,2,2,3因为我已经在上面的代码中为每一行做了一个循环(1:4),所以我想在该循环中添加一个代码以获得的总计“取消优先级”我不得不为我糟糕的英语技能道歉。我可以理解我想要的
:[2,3,1,1,1](作为[2,1,0,0,1]+[0,2,1,1,0]的总和)
。但是我无法从脚本中了解您的目标。我可以问一下您的目标和脚本之间的关系吗?我现有的脚本正在处理格式。假设我有一个表A1:F10。在a中有一个标志(无论是否“取消优先级”),而B1:F10中有值。我想复制每列中的公式:SUMIF(A1:A10,“取消优先级”,B1:B10),SUMIF(A1:A10,“取消优先级”,C1:C10),SUMIF(A1:A10,“取消优先级”,D1:D10)等等。澄清一下:我不想完全复制sumif公式。我希望脚本得到与B11:F11范围内公式相同的结果。感谢您的回答。我认为
[A,去优先级,2,1,0,0,1]
的值可能与您的回答不同。从您的问题中,我了解到“B”列"具有取消优先级的
值。在我的示例脚本中,使用了该值。而且,我无法理解您公式的详细信息。这是由于我的技能差。我对此深表歉意。为了正确理解您的问题,您能否提供您期望的电子表格的示例输入和输出值?通过此,我将uld希望修改脚本。如果您能合作解决您的问题,我很高兴。感谢您的帮助。我如何向您提供示例输入?我将用此示例再试一次(每个逗号分隔列).输入:行1:A,取消优先级,2,1,0,0,1行2:B,取消优先级,0,2,1,1,0行3:C,其他,5,2,0,0,0,1行4:D,取消优先级,0,0,1,1,2我想要第5行的输出:总计,取消优先级,2,3,2,2,3因为我已经在上面的代码中为每一行做了一个循环(1:4),所以我想在该循环中添加一个代码以获得的总计“取消优先级”
const arr = [["A","de-prioritized",2,1,0,0,1],["B","de-prioritized",0,2,1,1,0],["C","other",0,5,2,1,1]];
const res = arr.reduce((ar, [,b,...cdefg]) => {
  if (b == "de-prioritized") ar = ar.length > 0 ? ar.map((e, i) => e + cdefg[i]) : cdefg;
  return ar;
}, []);
console.log(res) // <--- [2,3,1,1,1]