我有一组数据通过道具查询结果。我能够获取数据,但无法对其进行排序。我希望CLANG_DEFAULT_CXX_STDLIB
的所有数据首先出现。
然而,当我将其加载到浏览器中时,我获得了不同的结果。
在Safari中,数据列表MyTeam
是数组中的第二个元素
在Chrome中,数据列表MyTeam
是第三个元素,但每当我与它们交互时(通过MyTeam
方法),数据都会以不同的顺序交换。
如果我没有.sort()方法,一切都保持不变,没有任何变化。
有没有正确的方法对数组进行排序?
onClick
答案 0 :(得分:1)
Array#sort
比较数组的两个项目。您的比较函数必须有两个参数。我建议如下:
var gameList = this.props.data.sort(function(a, b) {
var matchA = a.homeTeam === 'MyTeam' || a.awayTeam === 'MyTeam';
var matchB = b.homeTeam === 'MyTeam' || b.awayTeam === 'MyTeam';
// This will return
// -1 if matchA is true and matchB is false
// 0 if matchA and matchB are both true or both false
// 1 if matchA is false and matchB is true
return (matchB ? 1 : 0) - (matchA ? 1 : 0);
});