映射2数组属性

时间:2020-03-23 15:37:19

标签: javascript arrays

我想返回一个数组的两个属性

{
    label: 'Export',
    value: () => {

        let objects = [{category: 'Category 1', name: 'Test category 1'}, {category: 'Category 2', name: 'Test category 2'}];

        let object = objects
            .filter(object => !!object)
            .map(object => object.category)
            .join(', ');

        return cleanNewline(object);
    }
},

现在,此代码将返回

类别1,类别2

但是,我也想映射'name'属性,以便代码返回

类别1测试类别1,类别2测试类别2

有没有简单的方法可以做到这一点?

3 个答案:

答案 0 :(得分:2)

您还需要映射name

let objects = [{ category: 'Category 1', name: 'Test category 1' }, { category: 'Category 2', name: 'Test category 2' }],
    object = objects
        //.filter(object => !!object)
        .map(({ category, name }) => [category, name].join(' '))
        //.filter((value, key, array) => array.indexOf(value) === key)
        .join(', ');

console.log(object);

答案 1 :(得分:0)

我认为这样可以:

function example() {
  let objects = [{category: 'Category 1', name: 'Test category 1'}, {category: 'Category 2', name: 'Test category 2'}]

  const result = objects.map(({category, name}) => `${category} ${name}`).join(', ')

  return result
}

答案 2 :(得分:0)

您只需完成此操作即可实现目标-

let objects = [{category: 'Category 1', name: 'Test category 1'}, {category: 'Category 2', name: 'Test category 2'}];

objects = objects
  .filter(obj => !!obj)
  .map(obj => Object.values(obj).join(' '))
  .join(', ');
  
console.log(objects);