Ecmascript 6 对映射的对象数组使用filter(),但忽略用于筛选的数据
我使用了以下映射的对象数组Ecmascript 6 对映射的对象数组使用filter(),但忽略用于筛选的数据,ecmascript-6,Ecmascript 6,我使用了以下映射的对象数组filter()。这是一个待办任务列表,我只想从中筛选出尚未完成的任务(但没有false值表示尚未完成)。换句话说,我只想显示任务本身,如果它们确实还没有完成的话 代码的目的是学习如何从过滤内容中省略该数据(false)声明 let todos = [ { todo: 'Buy apples', done: false }, { todo: 'Wash car', done: tru
filter()
。这是一个待办任务列表,我只想从中筛选出尚未完成的任务(但没有false
值表示尚未完成)。换句话说,我只想显示任务本身,如果它们确实还没有完成的话
代码的目的是学习如何从过滤内容中省略该数据(false
)声明
let todos = [
{
todo: 'Buy apples',
done: false
},
{
todo: 'Wash car',
done: true
},
{
todo: 'Write web app',
done: false
},
{
todo: 'Read MDN page on JavaScript arrays',
done: true
},
{
todo: 'Call mom',
done: false
}
];
我试过:
unfinishedTasks = todos.map( (e)=> e).filter( (e)=> e.done == false);
以及:
unfinishedTasks = todos.filter( (e)=> e).map( (e)=> if ( e.done == false ) {e.todo} );
第一个输出基本上是正确的-错误的todo存在,但它们附近有false
关键字-当然,我想省略的关键字:
[{“todo”:“买苹果”,“完成”:假},{“todo”:“写网络应用”,“完成”:假},{“todo”:“打电话给妈妈”,“完成”:假}]
第二项产出:
意外标记“如果”
我想要的(从输出中输入false
关键字):
[“买苹果”、“写网络应用”、“打电话给妈妈”]
我在执行代码段中运行代码。要在那里进行测试,必须是注册的树屋学生
我可能需要在过滤内容上使用另一个
filter()
,或者使用一些if-than
语句?我没有任何线索。首先按项筛选。完成
,然后映射到项。todo
:
const-todos=[{todo:'Buy apples',done:false},{todo:'Wash car',done:true},{todo:'Write web app',done:false},{todo:'Read MDN page on JavaScript数组',done:true},{todo:'Call mom',done:false}];
const out=todos
.filter(项=>!项.done)
.map(item=>item.todo);
控制台。登录(退出);//[“买苹果”、“写网络应用”、“打电话给妈妈”]