2016-08-20 89 views
0

我有一个这样的数组...带过滤器阵列中删除对象将删除整个阵列

const students = [ 
    {id:1, name:'ben james', major: 'BIO'}, 
    {id:2, name:'natasha sampson', major: 'ZOO'}, 
    {id:3, name:'keith franklyn', major: 'CHM'}, 
    ... 
] 

我有我的removeStudents()按钮的onClick功能,将采取学生ID和删除学生阵容:

const id = event.target.id; 
const students = this.state.students; 
const newArr = students.filter(student => { 
    student.id != event.target.id; 
}); 
console.log(newArr); // will return [] 

不幸的是,这是行不通的。它清理整个阵列。我怎么才能删除基于ID的数组中的学生对象?

回答

2

传递给filter()方法的箭头函数不返回任何内容。无论是添加return关键字:

const newArr = students.filter(student => { 
    return student.id != event.target.id; 
}); 

或摆脱大括号:

const newArr = students.filter(student => student.id != event.target.id);