У меня есть JS-скрипт, который добавляет (sessionStorage.setItem ()) и удаляет (sessionStorage.removeItem ()) элементы в sessionStorage.Он работает по принципу, что добавление элемента добавит его в конец массива sessionStorage.Он работает так, как задумано в Edge, но при тестировании в Chrome и Firefox, после добавления элемента в sessionStorage, sessionStorage переупорядочивается по ключу в алфавитном порядке, что означает, что последний добавленный элемент не находится в конце массива, что разрушает весь скрипт,Как мне предотвратить это?Это функция, которая добавляет элементы в sessionStorage:
function addToCompareList(productName, productID, productHref) {
var existsInCompare = false;
for(var i = 0; i < sessionStorage.length; i++) {
if(sessionStorage.key(i) == productName) {
existsInCompare = true;
break;
}
}
if(!existsInCompare) {
sessionStorage.setItem(productName, productID + ',' + productHref);
}
//item limit should be 4, so if storage exceeds limit, remove oldest item. This is the part that becomes faulty in some browsers
if(sessionStorage.length > 4) {
sessionStorage.removeItem(sessionStorage.key(0));
}
}
Это код функции, которая добавляет элементы в sessionStorage.
После добавления элемента циклически перемещается по хранилищу сессии и консоли.log () - каждый элемент работает по-разному в разных браузерах: в Edge элементы регистрируются в том порядке, в котором они были добавлены, в Chrome и Firefox они регистрируются в алфавитном порядке, что означает, что закомментированный раздел кода не может работать какпредназначенный.