Какой лучший (самый эффективный) способ превратить все ключи объекта в нижний регистр?
Я придумала
function keysToLowerCase (obj) {
var keys = Object.keys(obj);
var n = keys.length;
while (n--) {
var key = keys[n]; // "cache" it, for less lookups to the array
if (key !== key.toLowerCase()) { // might already be in its lower case version
obj[key.toLowerCase()] = obj[key] // swap the value to a new lower case key
delete obj[key] // delete the old key
}
}
return (obj);
}
Но я не уверен, как v8 будет вести себя с этим, например, действительно ли он удалит другие ключи или он только удалит ссылки, а сборщик мусора укусит меня позже?
Также я создалэти тестыЯ надеюсь, что вы могли бы добавить свой ответ там, чтобы мы могли видеть, как они совпадают.
EDIT 1: По-видимому, согласно тестам, быстрее, если мы не проверим, находится ли ключ уже в нижнем регистре, но быстрее, не будет ли он создавать больше беспорядка, игнорируя это и просто создавая новые строчные ключи? Будет ли сборщик мусора этим доволен?