API каратэ: преобразование двух массивов в объект - PullRequest
0 голосов
/ 21 ноября 2018

Как объединить массивы ниже в объект в API каратэ.Я попробовал ниже код, он не работает.

keys = ['foo', 'bar', 'qux'] values ​​= ['1', '2', '3']

Feature: ArrayToObject
Scenario: ArrayToObject Coversion JS script

* def keys = ['foo', 'bar', 'qux']
* def values = ['1', '2', '3']

* def Arr2object =
  """
 function (keys, vals) {
     return keys.reduce(
      function(prev, val, i) {
        prev[val] = vals[i];
        return prev;
        }, {}
      );
   }
"""
* string text = Arr2object(keys, values)
* print text

Ожидается что-то вроде этого

{
  "foo": "1",
  "bar": "2",
  "qux": "3"
}

1 Ответ

0 голосов
/ 21 ноября 2018

Это может сработать,

* def Arr2object =
"""
function(keys,values){
    var newObj = {};
    if(keys.length == values.length){
        for (var i = 0; i <= keys.length - 1; i++) {
            newObj [keys[i]] = values[i];
        }
        return newObj;
    }
    return newObj;
}
...