У меня есть список с именем joinList, который содержит sobject и список sobject. это выглядит так
0:
employeeRole:
Employee__c:"a1n2C0000002SGqQAM"
Id:"a1m2C000000cJaxQAE"
Name:"Smith"
employeeBlock:
0:
Id:"a1u2C00000011FQQAY"
Name:"Week 2"
Week_Number__c:2
Total_Hours__c:4
1:
Id:"a1u2C00000011FQQAY"
Name:"Week 5"
Week_Number__c:5
Total_Hours__c:6
1:{employeeRole: Array(0), employeeBlock: {…}}
У меня есть целочисленное поле, в котором указывается количество недель, которое называется numberOfWeeksInput,
Цель - номер недели 5.
Я хочу проверить, существует ли для каждого сотрудника блок для сотрудников на каждую неделю, если он не создан для каждой недели.
результат будет
У меня уже есть недели 2 и 5, я хочу создать их для недели 1,3 и 4.
Обновить ответ
У меня есть код выглядит следующим образом, я спрашиваю, есть ли другой способ упростить его без использования jquery
var numberOfWeekList =[];
for(var t = 0; t < numberOfWeeksInput;t++){
numberOfWeekList.push((t+1));
}
if( numberOfWeeksInput != null && numberOfWeeksInput != 0){
for(var i = 0; i < joinList.length;i++){
var empolyeeBlock = joinList[i].empolyeeBlock ;
var existWeeks= [];
if(empolyeeBlock !== null && empolyeeBlock.length !== 0){
for(var t = 0; t < empolyeeBlock.length;t++){
existWeeks.push(empolyeeBlock[t].Week_Number__c);
}
}
var numberOfWeekUnassighned = numberOfWeekList.filter( ( el ) => !existWeeks.includes( el ) );
if(numberOfWeekUnassighned !== null && numberOfWeekUnassighned.length !==0 && numberOfWeekUnassighned.length !== numberOfWeeksInput){
for(var k = 0; k < numberOfWeekUnassighned.length;k++){
employeeBlock.push({
'sobjectType': 'EmployeeBlock__c',
'Name': 'Week '+(numberOfWeekUnassighned[k]),
'Week_Number__c':(numberOfWeekUnassighned[k]),
'Total_Hours__c':null
})
}
roleEstimateBlock.sort((a , b) => a.Week_Number__c - b.Week_Number__c);
}else if( employeeBlock.length <= numberOfWeeksInput){
for(var j = 0; j < numberOfWeeksInput;j++){
employeeBlock.push({
'sobjectType': 'EmployeeBlock__c',
'Name': 'Week '+(j+1),
'Week_Number__c':(j+1),
'Total_Hours__c':null
})
}
}
}
}