Lodash pick

by findango

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
<script>
function stringify(value) {
	return (
    	typeof value === 'undefined' ? 'undefined' :
    	typeof value === 'object' ? JSON.stringify(value, null, 2) :
        value
    );
}

function log() {
    var args = Array.prototype.slice.call(arguments, 0);
    document.getElementById('output').innerHTML += args.map(stringify).join(" ") + "\n";
}
</script>

<pre id="output"></pre>

JavaScript

const obj = {
    one: 1,
    two: 2,
    three: {
        a: '3.a',
        b: '3.b'
    }
};

const list = [obj, obj];

log('---- pick ----');
log(_.pick(obj, ['one', 'two']));
log(_.pick(null, ['one', 'two']));
log(_.pick(undefined, ['one', 'two']));

log('---- map ----');
log(_.map(undefined));
log(_.map(null));
log(_.map());

log('---- as a list ----');
log(1, _.map(list, item => _.pick(item, ['one', 'two'])));
log(2, _.map([], item => _.pick(item, ['one', 'two'])));
log(3, _.map(null, item => _.pick(item, ['one', 'two'])));
log(4, _.map(undefined, item => _.pick(item, ['one', 'two'])));