Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Удаление объекта при объединении. (https://javascript.ru/forum/events/85525-udalenie-obekta-pri-obedinenii.html)

ureech 05.10.2023 21:02

Удаление объекта при объединении.
 
Привет всем.
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

Nexus 05.10.2023 21:30

Крутой сервис, рекомендую: 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 ?? [])];

ureech 05.10.2023 21:37

Цитата:

Сообщение от Nexus
Крутой сервис, рекомендую

Согласен. Приму к сведению).
Цитата:

Сообщение от Nexus
Вам что-то типа такого нужно

По коду вроде бы да. Спасибо большое. Завтра проверю у себя.

ureech 06.10.2023 17:07

Всё работает. Ещё раз спасибо.


Часовой пояс GMT +3, время: 00:38.