将对象数组转换并过滤为一个对象

Ted*_*Ted 5 javascript

我有下一个对象数组:

const fields = [
    { givenName: 'firstName' },
    { familyName: 'lastName' },
    { 'custom:data': 'blabla' },
    { 'custom:data2': '' },
    { 'custom:data3': null },
  ];
Run Code Online (Sandbox Code Playgroud)

我需要的是过滤掉空的、空的或未定义的元素并将其转换为一个对象参数:

{  
   givenName: 'firstName',
   familyName: 'lastName',
   'custom:data': 'blabla'
}
Run Code Online (Sandbox Code Playgroud)

Nin*_*olz 6

您可以通过查看值来过滤数组。这种方法假设只有一个键/值对可用。

const
    fields = [{ givenName: 'firstName' }, { familyName: 'lastName' }, { 'custom:data': 'blabla' }, { 'custom:data2': '' }, { 'custom:data3': null }],
    result = Object.assign({}, ...fields.filter(o => {
        const [v] = Object.values(o);
        return v || v === 0 || v === false;
    }));

console.log(result);
Run Code Online (Sandbox Code Playgroud)