JavaScript equivalent of PHP function: array_flip

Don't think there's one built in. Example implementation here, though :).

function array_flip( trans )
{
    var key, tmp_ar = {};

    for ( key in trans )
    {
        if ( trans.hasOwnProperty( key ) )
        {
            tmp_ar[trans[key]] = key;
        }
    }

    return tmp_ar;
}

ES6 version

const example = { a: 'foo', b: 'bar' };

const flipped = Object.entries(example)
  .reduce((obj, [key, value]) => ({ ...obj, [value]: key }), {}); 

// flipped is {foo: 'a', bar: 'b'}

ES5 version

var example = {a: 'foo', b: 'bar'}; 

var flipped = Object.keys(example)                //get the keys as an array
    .reduce(function(obj, key) {                  //build up new object
        obj[example[key]] = key;
        return obj;
    }, {});                                       //{} is the starting value of obj

// flipped is {foo: 'a', bar: 'b'}

Using underscore _.invert

_.invert([1, 2]) 
//{1: '0', 2: '1'}

_.invert({a: 'b', c: 'd'}) 
//{b: 'a', d: 'c'}