Lodash filter on null

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 list = [
	{ name: 'a', type: 'filter' },
	{ name: 'b', type: 'filter' },
	{ name: 'c', type: 'macro' },
];

const obj = {
  filters: list,
};

log('1. by property', _.filter(list, {type: 'filter'}));
log('2. with a function', _.filter(list, obj => obj.type === 'macro'));

log('3. null', _.filter(null, {type: 'filter'}));
log('4. undefined', _.filter(undefined, {type: 'filter'}));
log('5. null', _.filter(null, {type: 'filter'}));

log('6. from obj', _.filter(obj.filters, {type: 'macro'}));
log('7. undef obj', _.filter(obj.notDefined, {type: 'macro'}));