{{ message }}

Instantly share code, notes, and snippets.

# anabastos/desafio.js

Created Mar 9, 2017
Desafio 1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
 //dado o array de dictionary abaixo some o total dos valores let dictionary = [{ '5': 50, '6': 60 }, { 'A': 10 }, { 'YEEZY': 30 }] dictionary.reduce((acc, val) => acc.concat(Object.values(val)), []).reduce((acc, val) => acc + val, 0)

### halan commented Mar 9, 2017

```const extractValues = (values, obj) =>
[...values, Object.values(obj)]

const sum = (a, b) => a + b

dictionary.reduce(extractValues, []).reduce(sum, 0)```

### halan commented Mar 9, 2017 • edited

```const mapObject = (mapper, obj) =>
obj.reduce( (values, obj) => [...values, mapper(obj) ], [])

const sum = (a, b) => a + b

mapObject(Object.values, dictionary).reduce(sum, 0)```

### anabastos commented Mar 9, 2017

@halan Otima solução! Valeu

### halan commented Mar 9, 2017

``````dictionary.map( Object.values ).reduce(sum, 0)
``````

### halan commented Mar 9, 2017

```const mapObject = (mapper, obj) =>
obj.reduce( (values, obj) => [...values, mapper(obj) ], [])

const sum = (a, b) => a + b

const sumValues = (obj) =>
mapObject(Object.values, obj).reduce(sum, 0)

dictionary.map(sumValues).reduce(sum, 0)```

### Woodsphreaker commented Mar 9, 2017 • edited

const dictionary = [{ '5': 50, '6': 60 }, { 'A': 10 }, { 'YEEZY': 30 }],
sum = (valores) => valores.reduce((a, b) => a + b),
valores = dictionary.map(valor => sum(Object.values(valor))).reduce((a,b) => a + b)

### theuves commented Mar 17, 2017

Sem `reduce` e sem callbacks (mas com `eval`).

`eval(JSON.stringify(dictionary).match(/\d+(?!")/g).join('+'));`

### Woodsphreaker commented Mar 18, 2017

```const obj =  [{ '5': 50, '6': 60 }, { 'A': 10 }, { 'YEEZY': 30 }];
const arrNumbers = () => obj.map(_a => Object.values(_a));
const onlyNumbers = () => [].concat(...arrNumbers());
const result = () => onlyNumbers().reduce((_a, _b) => _a + _b, 0);
```

### beatorizu commented Mar 18, 2017

```function sum_items(list_items) {
var sum = 0;
list_items.map(
function (item) {
for (var key in item) {
sum += item[key];
}
}
);
return sum;
}```

to join this conversation on GitHub. Already have an account? Sign in to comment