在“总计”字段中为所需代码添加值的图像最初我注册了4个求和文件,但现在又添加了2个字段。作为4个字段,我有下面的代码,但增加2个,它正变得更加复杂,根据我的知识。
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.history.ChangeItemBean
// Get values from 4 custom fields
def val1 = getCustomFieldValue("FTE US") as Double
def val2 = getCustomFieldValue("FTE OGS IND") as Double
def val3 = getCustomFieldValue("FTE OGS PHL") as Double
def val4 = getCustomFieldValue("FTE Vendor") as Double
// check both fields contain valid numeric values
if (val1 == null && val2 == null && val3 == null && val4 == null){
return 0
}else if (val1 != null && val2 != null&& val3 != null&& val4 != null){
return val1 + val2 + val3 + val4
}else if (val1 == null && val2 != null&& val3 != null&& val4 != null){
return 0 + val2 + val3 + val4
}else if (val2 == null && val1 != null&& val3 != null&& val4 != null){
return 0 + val1 + val3 + val4
}else if (val3 == null && val1 != null&& val2 != null&& val4 != null){
return 0 + val1+ val2 + val4
}else if (val4 == null && val1 != null&& val2 != null&& val3 != null){
return 0 + val1 + val2 + val3
}else if (val3 == null && val4 == null&& val1 != null&& val2 != null){
return 0 + val1 + val2
}else if (val2 == null && val4 == null&& val1 != null&& val3 != null){
return 0 + val1 + val3
}else if (val2 == null && val3 == null&& val1 != null&& val4 != null){
return 0 + val1 + val4
}else if (val1 == null && val4 == null&& val2 != null&& val3 != null){
return 0 + val2 + val3
}else if (val1 == null && val3 == null&& val2 != null&& val4 != null){
return 0 + val2 + val4
}else if (val1 == null && val2 == null&& val3 != null&& val4 != null){
return 0 + val3 + val4
}else{
// return to some code to indicate a null value in one of the fields
return "0"
}发布于 2022-02-21 15:28:58
将所有值放入数组中,然后调用:
[val1, val2, val3, val4].filter((x) => !isNaN(x)).reduce((a, b) => a + b)我要做的是:
filter删除“number”元素(!isNaN(x));可以将所有想要添加到上面数组的元素添加到上面。
发布于 2022-02-21 16:15:16
Javascript应该将Null添加为0,但是您可以确保使用类似于此处末尾的函数。此外,正如前面提到的,"def“和"as Double”在Javascript中无效。此测试代码正确警告4.5。
let val1 = returnDouble();
let val2 = retNull();
let val3 = returnDouble();
let val4 = returnDouble();
alert(val1 + val2 + val3 + val4);
function retNull() {
return(null);
}
function returnDouble () {
return(1.5);
}
// OR to be very sure use a Conditional Operator to make Null into a 0 integer
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
function makeNullZero(value) {
return(Null == value ? 0 : value);
}您导入的组件似乎是Java (而不是Javascript) https://docs.atlassian.com/software/jira/docs/api/7.6.1/com/atlassian/jira/component/ComponentAccessor.html。
如果您的变量可以被赋值为null,则将其设为双(带大写D),以避免错误,并将其转换为零,如下所示:
public static void main(String []args){
Double val1 = makeNullZero(1.5);
Double val2 = makeNullZero(null);
Double sum = val1 + val2;
System.out.println(sum);
}
static Double makeNullZero(Double val) {
return null == val ? 0 : val;
}所以对于您的用例:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.history.ChangeItemBean
// Get values from 4 custom fields
Double val1 = makeNullZero(getCustomFieldValue("FTE US"));
Double val2 = makeNullZero(getCustomFieldValue("FTE OGS IND"));
Double val3 = makeNullZero(getCustomFieldValue("FTE OGS PHL"));
Double val4 = makeNullZero(getCustomFieldValue("FTE PR"));
Double val5 = makeNullZero(getCustomFieldValue("FTE COL"));
Double val6 = makeNullZero(getCustomFieldValue("FTE Vendor"));
Double sum = val1 + val2 + val3 + val4 + val5 + val6;
return sum;
static Double makeNullZero(Double val) {
return null == val ? 0 : val;
}https://stackoverflow.com/questions/71208740
复制相似问题