This question already has answers here:
Semicolon at end of 'if' statement
                                
                                    (18个回答)
                                
                        
                                去年关闭。
            
                    
因此在文件夹数组中。我想打印出大小不为null的文件夹的“名称”。



let folders = [
  {
    name:'user_name',
    size: 5455,
    information: ' '
    },
  {
    name:'untitled',
    size: 545343,
    information: 'no description'
  },
  {
    name:'new_user',
    size: null
  }
];





因此,我编写此代码是为了获取大小不为null的文件夹的名称,但是当我对其进行测试时,它只会打印出所有数组。我不太清楚自己在做什么错。



folders.forEach((item) => {
  let info = folders.filter((f) => {
    if (f.size !== null);
    return item.name
  })
  console.log(info)
});

最佳答案

为此,请考虑结合使用Array#filter()Array#map()

首先,使用filter()隔离大小不是null的文件夹项目:

.filter(folder => folder.size !== null)


然后使用map()将筛选结果中的每个文件夹项目转换为该文件夹的名称:

.map(folder => folder.name)


完整的示例可以看成是:



let folders = [
  {
    name:'user_name',
    size: 5455,
    information: ' '
    },
  {
    name:'untitled',
    size: 545343,
    information: 'no description'
  },
  {
    name:'new_user',
    size: null
  }
];

let result = folders
.filter(folder => folder.size !== null)
.map(folder => folder.name)

console.log(result)

08-05 05:54