сортировка массива объектов: заметили ли вы разные результаты в Chrome и Firefox

Я использовал Brave (потом я проверил с Chrome 81) и не смог получить правильную сортировку: никакой сортировки. Затем я попробовал с Firefox 74, и результат правильный!?!?!

Я не могу поверить, что это ошибка Chrome, но что еще? Я только что перепроверил еще раз.

Вот мой фрагмент кода (небольшая часть огромного файла geojson), проверенный на этой же странице в обоих браузерах: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Ссылка/Global_Objects/Array/sort

const ff = [
{"properties":{"libel_s":"Châtenois-Dolaincourt","slug_s":"Chatenois-Dolaincourt","uic_s":87144360,"pk":"70+475","rang":1,"idreseau":30000003663,"frevoy":"ON","num_s":"030000","dept":"88","nom_s":"Châtenois"},"type":"Feature","geometry":{"type":"Point","coordinates":[5.838898157124752,48.3016159832871]}},
{"properties":{"libel_s":"Dompaire","slug_s":"Dompaire","uic_s":87144774,"pk":"107+095","frevoy":"NN","num_s":"030000","dept":"88","nom_s":"Dompaire"},"type":"Feature","geometry":{"type":"Point","coordinates":[6.227413,48.21918]}},
{"properties":{"libel_s":"Aulnois-Bulgneville","slug_s":"Aulnois-Bulgneville","uic_s":87144378,"pk":"64+679","rang":1,"idreseau":30000008513,"frevoy":"NN","num_s":"030000","dept":"88","nom_s":"Aulnois"},"type":"Feature","geometry":{"type":"Point","coordinates":[5.79276278179999,48.26129746043176]}},
{"properties":{"libel_s":"Neufchâteau","slug_s":"Neufchateau","uic_s":87141291,"pk":"48+782","rang":1,"idreseau":30000005759,"frevoy":"OO","num_s":"030000"},"type":"Feature","geometry":{"type":"Point","coordinates":[5.69156366143611,48.35944961407943]}},
{"properties":{"libel_s":"Mirecourt","slug_s":"Mirecourt","uic_s":87144212,"pk":"94+156","rang":1,"idreseau":30000005527,"frevoy":"NO","num_s":"030000","dept":"88","nom_s":"Mirecourt"},"type":"Feature","geometry":{"type":"Point","coordinates":[6.128989839330904,48.29961812642761]}},
{"properties":{"libel_s":"Épinal","slug_s":"Epinal","uic_s":87144006,"pk":"126+801","rang":1,"idreseau":30000004058,"frevoy":"OO","num_s":"030000","dept":"88","nom_s":"Épinal"},"type":"Feature","geometry":{"type":"Point","coordinates":[6.441651,48.177831]}},
{"properties":{"libel_s":"Velotte-et-Tatignécourt","slug_s":"Velotte-et-Tatignecourt","uic_s":87146043,"pk":"100+530","frevoy":"NN","num_s":"030000","dept":"88","nom_s":"Velotte-et-Tatignécourt"},"type":"Feature","geometry":{"type":"Point","coordinates":[6.169486,48.259674]}},
{"properties":{"libel_s":"Racécourt","slug_s":"Racecourt","uic_s":87146035,"pk":"102+222","frevoy":"NN","num_s":"030000","dept":"88","nom_s":"Racécourt","info":"exemple de Halte"},"type":"Feature","geometry":{"type":"Point","coordinates":[6.188408,48.251786]}},
{"properties":{"libel_s":"Certilleux","slug_s":"Certilleux","uic_s":87674010,"pk":"56+303","rang":1,"idreseau":30000008560,"frevoy":"NN","num_s":"030000","dept":"88","nom_s":"Certilleux"},"type":"Feature","geometry":{"type":"Point","coordinates":[5.7194491232622635,48.31271488590898]}}
];
const sorprop = (a,b) => parseInt(a.properties.pk) - parseInt(b.properties.pk);
const printgare = (f,i) => (i?",\n":"\n") + JSON.stringify(f); //fp.libel_s +"-"+ parseInt(fp.pk);
const coli = "030000";
console.log(ff.reduce((acc,f,i) => acc + printgare(f,i), `[${ff.length}]: `));
let gg = ff.filter(f => f.properties.num_s === coli).sort((a,b) => parseInt(a.properties.pk) > parseInt(b.properties.pk));
console.log(gg.reduce((acc,f,i) => acc + printgare(f,i), `[${gg.length}]: `));

person allez l'OM    schedule 10.04.2020    source источник
comment
Вы возвращаете логическое значение в обратном вызове .sort обратный вызов должен возвращать число, чтобы оно могло быть непротиворечивым.   -  person CertainPerformance    schedule 10.04.2020
comment
@CertainPerformance, вы правы, я провел несколько тестов и скопировал этот, но это не имеет никакого значения. Я изменяю вопрос, все еще держится.   -  person allez l'OM    schedule 10.04.2020
comment
@CertainPerformance: пожалуйста, проверьте число (знак минус), ошибка все еще существует.   -  person allez l'OM    schedule 10.04.2020
comment
let gg = ff.filter(f => f.properties.num_s === coli).sort((a,b) => parseInt(a.properties.pk) > parseInt(b.properties.pk)); возвращает логическое значение. Вы нигде не используете sorprop   -  person CertainPerformance    schedule 10.04.2020
comment
@CertainPerformance: Спасибо. Я модифицировал функцию sorprop, но забыл, что использую не ее, а другую анонимную... блин, я испортил часы и побеспокоил вас. Закрыто.   -  person allez l'OM    schedule 10.04.2020