Удаление объекта при объединении.
Привет всем.
if (localStorage.getItem('prevFirsts')){
stor = JSON.parse(localStorage.getItem('prevFirsts'))// это массив объектов
}
var firsts = document.querySelectorAll('.first')
for (var i = 0; i < firsts.length; i++) {
obj = {...}
arr.push(obj)
}
if(stor){
var res = [...arr, ...stor];
}else{
var res = arr
}
Так есть сейчас. Но проблема в том, что при создании объекта в цикле, создаётся как минимум один не нужный. Как мне при объединении объектов проверять obj в arr на условие, что если obj.data == такому же значению, но в stor, значит этот обект не нужен в arr |
Крутой сервис, рекомендую: https://beautifier.io
Вам что-то типа такого нужно?
var savedEntries = null,
savedJson = localStorage.getItem('prevFirsts');
if (savedJson != null) {
try {
savedEntries = JSON.parse(savedJson);
} catch (e) {}
}
var dataToIndexEntriesMap = savedEntries.reduce(function(map, item, index) {
map[item.data] = index;
return map;
}, {});
var actualEntries = [];
document.querySelectorAll('.first').forEach(function(node) {
var item = {
data: node.innerHTML,
};
if (!(item.data in dataToIndexEntriesMap)) {
actualEntries.push(item);
}
});
var result = [...actualEntries, ...(savedEntries ?? [])];
|
Цитата:
Цитата:
|
Всё работает. Ещё раз спасибо.
|
| Часовой пояс GMT +3, время: 19:52. |