lodash.mapValues
Добрый день!
Не могу самостоятельно разобраться, почему так странно работает lodash. 1. Вариант: var _=require('lodash'); var users = { 'fred': { 'user': 'fred', 'age': 40 }, 'pebbles': { 'user': 'pebbles', 'age': 1 } }; var map1 = _.mapValues(users, function() { return users; // возвращает ДВА!!!! раза: // { fred: // { fred: { user: 'fred', age: 40 }, // pebbles: { user: 'pebbles', age: 1 } }, // pebbles: // { fred: { user: 'fred', age: 40 }, // pebbles: { user: 'pebbles', age: 1 } } } }); console.log(map1); Но если передаем в функцию значение, то возвращает один раз: var _=require('lodash'); var users = { 'fred': { 'user': 'fred', 'age': 40 }, 'pebbles': { 'user': 'pebbles', 'age': 1 } }; var map1 = _.mapValues(users, function(o) { return o; // возвращает один раз }); console.log(map1);] Почему так, ведь и в одном и в другом случае я прошу вернуть всего-лишь объект user??? |
Rise, привет
Я пытаюсь понять как работает mapValue из описания мне не очень понятно, я решил позадавать разные входные параметры, чтобы дебагом понять, что происходит. Так вот, когда я в _.mapValues параметром передаю в функцию пусто, то у мена возвращается два раза переданный объект users var map1 = _.mapValues(users, function() { return users; } Результат: { fred: { fred: { user: 'fred', age: 40 }, pebbles: { user: 'pebbles', age: 1 } }, pebbles: { fred: { user: 'fred', age: 40 }, pebbles: { user: 'pebbles', age: 1 } } } Когда же я на вход параметра функции передаю некий (o), то возвращается один раз объект. Мне не понятно почему так происходит если возвратить и в первом и во втором случае я его прошу только мой объект, только в первом случае напрямую как users, а во втором через какое-то "o" которое вообще не понято как подхватывается функцией var map1 = _.mapValues(users, function(o) { return o; // возвращает один раз }); Результат: { fred: { user: 'fred', age: 40 }, pebbles: { user: 'pebbles', age: 1 } } |
Часовой пояс GMT +3, время: 02:14. |