Показать сообщение отдельно
  #3 (permalink)  
Старый 29.03.2025, 16:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,249

Предложу такой вариант...

let period = {
	id: Math.floor(Math.random() * 1000000),
	date: new Date().toISOString(),
	unit: {
		1: {a: '', c: [16,9,3,11,30], p: ''}, 
		2: {a: '', c: [5,12,8,21,33], p: ''}, 
		3: {a: '', c: [6,13,10,22,34], p: ''}
	}
};

let num = [16,9,3,11,30, 5,12,8,21,33, 6,13,10,22,34,8,69,25,47,72,18];

function checkPeriod(){
	const s = new Set(Object.values(period.unit).flatMap(o => o.c))
	let i = 0
	num.forEach((v, _, a) => !s.has(v) ? a[i++] = v : 0)
	num.length = i
}

checkPeriod()
alert(num)
Ответить с цитированием