从另一个对象和要保存的键数组生成一个对象的最简洁的方法



是否存在lodash函数,或者可能是两者的组合,可以接受对象和要保留的键数组,以输出对象简化为这些键?

{a: 1, b: 2, c: 3, d: 4} and ['a', 'c'] => {a: 1, c: 3}

https://lodash.com/docs选择

var obj = {a: 1, b: 2, c: 3, d: 4};
var keys = ['a', 'c'];
var filtered = _.pick(obj, keys);
document.body.innerHTML = '<pre>' + JSON.stringify(filtered, null, '    ') + '</pre>';
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>

你可以这样做。它不是很慢,但它组装物体相当快。

function reduce(obj, keys)
{
    var newObj = {};
    keys.forEach(function(element)
    {
        newObj[element] = obj[element];
    });
    return newObj;
}
var myObj = {a: 1, b: 2, c: 3, d: 4};
var reducedObj = reduce(myObj, ["a", "c"]);

最新更新