// result 为后台返回的集合,在渲染tree前的数据 result = result.sort(function (a, b) { // 判断前面一个是字母,后面一个不是字母,那么不换位置,返回-1 if(/^[a-zA-Z]$/.test(a.name.substring(0, 1)) && !/^[a-zA-Z]$/.test(b.name.substring(0, 1))) { return -1; } // 判断前面一个不是字母,后面一个是字母,那么换位置,返回1 if(!/^[a-zA-Z]$/.test(a.name.substring(0, 1)) && /^[a-zA-Z]$/.test(b.name.substring(0, 1))) { return 1; } let param1 = a.name; let param2 = b.name; // 那个都是字母或都是非字母【这里主要是判断是中文】,升序排序 return param1.localeCompare(param2, "zh"); });