foreach()

배열 내의 인자를 빼내지 않고 배열을 대상으로 혹은 복수의 배열끼리 연산을 수행합니다.

문법

foreach(OP_EXPR, LIST_EXPR_1, LIST_EXPR_2, ...)
필수 매개변수
OP_EXPR
배열 요소 사이에 수행할 연산식. 첫번째 배열의 요소는 _1, 두 번째 배열의 요소는 _2, N 번째 배열 요소는 _N을 매개변수로 사용
LIST_EXPR_1, LIST_EXPR_2, ...
배열을 반환하는 표현식을 쉼표(,)로 구분하여 지정

설명

매개변수로 전달되는 배열들의 길이가 같지 않으면 긴 배열을 구성하는 요소의 개수에 맞추어 짧은 배열에 null이 할당된 요소를 채운 후에 연산을 수행합니다. 예를 들어, 첫번째 배열이 5개 요소, 두 번째 배열이 3개 요소로 구성되어 있으면 두 번째 배열에 값이 null인 요소를 2개 더 추가한 뒤에 연산을 수행합니다.

인자로 목록 대신 스칼라 값이 전달되면 리스트로 복제하여 확장 첫번째 리스트를 _1, 두번째 리스트를 _2의 방식으로 치환하여 OP_EXPR에 따라 각각 연산합니다.

사용 예

json "{}" 
| eval arr1= array(-1, -2, -3, -4, -5), arr2= array(1,2,3,4,5) 
| eval _output = foreach(_1 * _2, arr1, arr2) 
| order arr1, arr2, _output
=> [-1,-4,-9,-16,-25]