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

我有下一个对象数组:

const fields = [
    { givenName: 'firstName' },
    { familyName: 'lastName' },
    { 'custom:data': 'blabla' },
    { 'custom:data2': '' },
    { 'custom:data3': null },
  ];

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

{  
   givenName: 'firstName',
   familyName: 'lastName',
   'custom:data': 'blabla'
}

回答

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

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);


以上是将对象数组转换并过滤为一个对象的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>