Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Сравнение данных в двух коллекциях через массив (или еще как?) (https://javascript.ru/forum/node-js-io-js/70446-sravnenie-dannykh-v-dvukh-kollekciyakh-cherez-massiv-ili-eshhe-kak.html)

DerAlSem 05.09.2017 16:44

Сравнение данных в двух коллекциях через массив (или еще как?)
 
Подскажите, пожалуйста, как сравнить данные из коллекции А с данными в коллекции Б и если в Б чего-то нет, то добавить их туда?

После PHP и mysql че-т асинк мне не дается.

Получить данные из А нужные я могу. Из Б - тоже. Дальше просто сравнивал бы элемент одного массива с каждым элементом второго, и если в конце элемент не найден, то добавлял бы его.

Проблема в том, что результаты приходят, но код уже убежал дальше, соотв, массивы пустые.

Пробовал через колбеки сделать - не работает, все равно массивы пустые.

Тривиальная задача, решить не могу. :(

destus 06.09.2017 07:11

const getDataA = () => new Promise(resolve => setTimeout(resolve.bind(null, [1,2,3]), 1000));
const getDataB = () => new Promise(resolve => setTimeout(resolve.bind(null, [2,3,4]), 500));

async function run() {
	
	let A = await getDataA();
	let B = await getDataB();
	B = [...A.filter(el => !B.includes(el)), ...B]
	console.log(B); // [1,2,3,4]
}

run();

DerAlSem 06.09.2017 12:49

Пойду почитаю про промисы. Вообще не знаю, что это. :)


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