# const b = a.{ id, name, age } - Object Cherry Pick

**URL:** <https://es.discourse.group/t/const-b-a-id-name-age-object-cherry-pick/905>\
**Category:** 💡 Ideas\
**Tags:** proposal\
**Created:** [August 7, 2021, 10:32am UTC](https://es.discourse.group/t/const-b-a-id-name-age-object-cherry-pick/905 "2021-08-07T10:32:33Z")\
**Posts on this page:** 1\
**Showing post:** 47

<div class="post-metadata">

**Author:** ![willow\_grace](https://avatars.discourse-cdn.com/v4/letter/w/ac8455/32.png) [@willow\_grace](https://es.discourse.group/u/willow_grace)\
**Post date:** [April 23, 2022, 3:43pm UTC](https://es.discourse.group/t/const-b-a-id-name-age-object-cherry-pick/905/47 "2022-04-23T15:43:51Z")

</div>

@DenisTRUFFAUT Hi! What do you think these ideas?

#### Maybe this idea will be useful with this cases:

#### case 1: Object Cherry Pick with parameter coercion

```javascript
const adults
  from data => { id: 42, name: 'a', age: 21, score: { c:1, php: 3, js: 5 }, likes: ['X', 'Y'] };
  from users => users.filter(u => u.age > 18)
  from conf => conf.users
  from filter => data.{ id, name, age };
  from JSON.parse
  = rawData

```

#### case2: Object Cherry Pick with Cooperative async function

```javascript
useEffect(function*() {
    const data = { id: 42, name: 'a', age: 21, score: { c:1, php: 3, js: 5 }, likes: ['X', 'Y'] };
    const info = yield data.{ id, name, age }
    setState(info.json())
})

```

#### case 3: Object Cherry Pick with Logical Assignment w/ Destructuring

```javascript
let { id: 42, name: 'a', age: 21, score: { c:1, php: 3, js: 5 }, likes: ['X', 'Y']; } = object;
data.{ id, age } ||== int; 

```

#### case 4: Object Cherry Pick with ternary-like try/catch

```javascript
const data = { id: 42, name: 'a', age: 21, score: { c:1, php: 3, js: 5 }, likes: ['X', 'Y'] };
let success = try? console.log(data.{ id, age }) : false

```

#### case 5: object Cherry Pick and Pipeline tap operator `|:`

```javascript
const doTransfomration = data => data
  .filter(x => x != null)
  .map(x => x ** 2)
  .filter(x => x > 100)
  .console.log(data.{ id, age })

```

#### notes

1. I would like to demonstrate interesting cases with Object Cherry Pick
2. I would like to help the community by describing my experience with Object Cherry Pick

#### references

- [https://es.discourse.group/t/parameter-coercion](https://es.discourse.group/t/parameter-coercion)
- [https://es.discourse.group/t/cooperative-async-function](https://es.discourse.group/t/cooperative-async-function)
- [GitHub - jrandolf-zz/proposal-logical-default-assignment: Logical assignment for default assignments](https://github.com/jrandolf-zz/proposal-logical-default-assignment)
- [https://es.discourse.group/t/ternary-like-try-catch](https://es.discourse.group/t/ternary-like-try-catch)
- [https://es.discourse.group/t/logical-assignment-for-default-assignments](https://es.discourse.group/t/logical-assignment-for-default-assignments)
- [https://es.discourse.group/t/cooperative-async-function](https://es.discourse.group/t/cooperative-async-function)
- [https://es.discourse.group/t/logical-assignment-w-destructuring](https://es.discourse.group/t/logical-assignment-w-destructuring)
- [Pipeline tap operator `|:`](https://es.discourse.group/t/pipeline-tap-operator/792)

---

_[View the full topic](https://es.discourse.group/t/const-b-a-id-name-age-object-cherry-pick/905)._
