Значения карты Лодаша во вложенном массиве

Упрощенный ответ: если поток A обновляет поле, а затем освобождает блокировку, то поток B будет гарантированно видеть обновление после того, как поток B приобретет ту же блокировку.

Обратите внимание: «отпустите блокировку «означает выход из блока synchronized, а« получение той же блокировки »означает синхронизацию на одном и том же объекте.

0
задан skyline33 16 January 2019 в 12:42
поделиться

4 ответа

Вот:

_.map(data.stats, obj => [ obj.points, obj.pos ])

Редактировать: @ Хасан Имам сделал интересный ответ, используя разрушающий объект

0
ответ дан Cinn 16 January 2019 в 12:42
поделиться

Вы в значительной степени поняли это, вам просто нужно объединить вашу нативную версию с вашей lodash попыткой:

var result = _.map(data.stats, o => [o.points, o.pos]);

Как видите, я заменил второй параметр в _.map (который был 'points') с функцией, используемой в вашей собственной версии.

0
ответ дан JAAulde 16 January 2019 в 12:42
поделиться

Вы можете использовать object#destructring в функции обратного вызова.

let data = {"_id":"93866","stats":[{"points":86,"pos":11,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"},{"points":79,"pos":26,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"},{"points":64,"pos":39,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"}]},
    result = _.map(data.stats, ({points, pos}) => [points,pos]);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

0
ответ дан Hassan Imam 16 January 2019 в 12:42
поделиться

Вы можете использовать _.at() Лодаша с _.map() :

const data = {"_id":"93866","stats":[{"points":86,"pos":11,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"},{"points":79,"pos":26,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"},{"points":64,"pos":39,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"}]};

const result = _.map(data.stats, o => _.at(o, ['points', 'pos']));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
[1111 ]

Вы также можете использовать lodash / fp версии _.map() и _.at() для создания функции:

const data = {"_id":"93866","stats":[{"points":86,"pos":11,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"},{"points":79,"pos":26,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"},{"points":64,"pos":39,"createdAt":"2019-01-16T10:13:40.650Z","updatedAt":"2019-01-16T10:13:40.825Z"}]};

const fn = _.map(_.at(['points', 'pos']));

const result = fn(data.stats);

console.log(result);
[ 113]

0
ответ дан Ori Drori 16 January 2019 в 12:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: