我有一个类,其中有两个方法handleChange(e)
和cardClick(e)
,并且我想对两个函数的对象数组进行排序。
我的代码是:
handleChange(e){
arr.sort(compare);
function compare(a, b){
if(a.population === 'unknown')
return 1;
if(b.population === 'unknown')
return -1;
if(parseInt(a.population) < parseInt(b.population))
return 1;
else if(parseInt(a.population) > parseInt(b.population))
return -1;
else
return 0;
}
}
和
cardClick(e){
arr.sort(compare);
function compare(a, b){
if(a.population === 'unknown')
return 1;
if(b.population === 'unknown')
return -1;
if(parseInt(a.population) < parseInt(b.population))
return 1;
else if(parseInt(a.population) > parseInt(b.population))
return -1;
else
return 0;
}
}
我必须在handleChange和cardClick中都编写比较函数定义。他们有什么办法,这样我就不必写两次,并且我可以在两个函数中使用它。
答案 0 :(得分:1)
您可以在类外部定义函数,并在两个事件处理程序中使用它。
示例
function compare(a, b) {
if (a.population === "unknown") return 1;
if (b.population === "unknown") return -1;
if (parseInt(a.population) < parseInt(b.population)) return 1;
else if (parseInt(a.population) > parseInt(b.population)) return -1;
else return 0;
}
class App extends React.Component {
handleChange = e => {
arr.sort(compare);
// ...
};
cardClick = e => {
arr.sort(compare);
// ...
};
render() {
// ...
}
}