如何在空手道框架中合并多个数组?

问题描述

我可以使用下面的代码使用Javascript添加多个数组,但是当我在Karate框架中应用相同的数组时,会出现错误解决此问题的任何帮助。

Javascript:

var array1 = ["02","03"];
var array2 = ["24","21"];
var array3 = ["12","13"];

function mergeElementsAtIndex(array1,array2,array3) {
      var newArray = array1.map(function(value,index) 
      {
        return value + array2[index] + array3[index];
      });
        return newArray;
    }

 - List item

merged_array = mergeElementsAtIndex(array1,array3)

与空手道相同:

* def mydate = 
    """
    function (array1,index) 
      {
        return value + array2[index] + array3[index];
      });
        return newArray;
    }
    """
* def newdissue = mydate(array1,array3)

我收到错误消息

*** step Failed: testing.feature:97 - javascript evaluation Failed: mydate(array1,array3),TypeError: issueMonth.map is not a function in <eval> at line number 2

解决方法

使用karate.append()https://github.com/intuit/karate#json-transforms

* def temp1 = [1,2,3]
* def temp2 = karate.append(temp1,[4,5],[6,7])
,

上述问题的解决方案:

* def mydate = 
"""
function (array1,array2,array3) {
  array1=karate.append(array1);
  array2=karate.append(array2);
  array3=karate.append(array3);
  var c = [];

      for(var i=0;i<Math.max(array1.length,array2.length,array3.length); i++)
    {
        c.push((array1[i]|| 0)+(array2[i]|| 0)+(array3[i]|| 0))
    }
    return c
}
"""
* def expireDate = mydate(expireMonth,expireDay,expireYear)