我想構建一個3層功能: 首先,數組列出了可用的工作室(數組稱爲'工作室')。 其次,另一個數組列出了用戶選擇的研討會(該陣列稱爲'selectedWorkshops')。 第三,我有一個名爲'registeredWorkshops'的最終數組。從數組中刪除匹配對象,同時將它們添加到另一個數組
當我的函數運行時,我想將'selectedWorkshops'中的對象添加到'registeredWorkshops',然後我想從'selectedWorkshops'和'workshop'中的任何匹配元素中刪除'selectedWorkshops'中的任何對象。因此,那些曾經存在於「精選車間」和「車間」中的物品現在只存在於「註冊車間」中。
這裏是我到目前爲止有:
addRemoveWorkshops = function(){
var numberOfWorkshops = selectedWorkshops.length;
for(var i = 0; i < numberOfWorkshops; i++){
registeredWorkshops.push(selectedWorkshops[i]);
for(var j = 0, arrayLength = workshops.length; j < arrayLength; j++) {
var searchTerm = selectedWorkshops[i].WorkshopId;
if (workshops[j].WorkshopId === searchTerm) {
workshops = workshops.slice(j);
}
}
selectedWorkshops = selectedWorkshops.slice(i);
}
};
addRemoveWorkshops();
但功能沒有出現正常工作。它似乎並沒有刪除正確的研討會,而只是將其中一個選定的研討會添加到註冊的研討會。我究竟做錯了什麼?
這裏有一個codepen示範:http://codepen.io/trueScript/pen/GgVWMx
我認爲你不能調用array.slice(i)或array.slice(J),當i或j值爲零 –
@TheGuest你可以,但它只是返回一個空數組。 –
@DanPrince我的意思是在這種情況下 –