## 시나리오의 쿼리 결과(object array)를 데이터전파할 경우, 특정 프로퍼티의 값으로 필터링된 object만 전파하는 방법 (예: 프로퍼티A의 값이 A1이거나 A2인 object만 전파함)

### 방법 1

- 데이타 바인딩시에 규칙타입중 '함수(eval)'를 사용하는 방법이 가장 간편합니다.

예를 들어 속성 A의 값이 'A1'이거나 'A2'인 오브젝트만 전파하려면,

```
return (value || []).filter(v => v.A == 'A1' || v.A == 'A2')
```

이렇게 작성하시면 됩니다.

이것은 순수한 자바스크립트 문법입니다.

여기에서 value는 eval의 내장변수로서, '소스 데이타'가 '접근자'를 통해서 가공된 후 eval에 전달된 값입니다.

![filtering01]

### 방법 2

- JSonata 의 문법을 사용하여, '접근자'에서 필터링 조건을 줄 수도 있습니다.
- 이 경우 필터링 결과가 없거나 하나인 경우에도 오브젝트 배열형태로 반환되지 않는 문제가 있습니다.
  - 필터링 결과가 하나인 경우에는 오브젝트타입으로 반환됨
  - 필터링 결과가 없는 경우에는 반환값이 없습니다.

```
$filter($, function($v) { $v.A = 'A1' or $v.A = 'A2' })
```

![filtering02]

### 결과

![filtering03]

[filtering01]: ./images/data-filtering-for-object-array-01.png
[filtering02]: ./images/data-filtering-for-object-array-02.png
[filtering03]: ./images/data-filtering-for-object-array-03.png
