Intl.Collator in javascript does not sort case sensitive the same as native array sort

Viewed 50

Why does using Intl.Collator with sensitivity option of 'case' (i.e. case sensitivity is on) result in aa coming before AA?

When using the native array.sort() the ordering is as I would expect.

const caseSensitiveCollator = new Intl.Collator('en',  { sensitivity: 'case' });

const initialData = ['AA', 'aa', 'ab', 'AB', 'ZA', 'zz'];
console.log('Before: ', initialData);

let data = initialData.concat();
data.sort(caseSensitiveCollator.compare);
console.log('After SENSITIVE', data);
// I expect ['AA', 'AB', 'ZA', 'aa', 'ab', 'zz']

data = initialData.concat().sort();
console.log('Native Array Sort', data);

0 Answers
Related