У меня есть функция, как так:Функция петли один раз, а затем возвращается
removeDuplicates(item: String, allForToday: Array) {
let temp = allForToday;
for (let i = 0; i < temp.length; i++) {
if (temp[i].indexOf(item) > -1) {
temp = temp.splice(i, 1);
}
}
return temp;
}
который я называю так:
for (let i = 0; i < lastWeekItems.length; i++) {
allForToday = t.removeDuplicates(lastWeekItems[i], allForToday);
}
пропущенный lastweekItems[i]
является строкой, и allForToday представляет собой массив строк это выглядит так: 1;2;3
. lastweekItems [i] может быть, например, 2
. Я ожидаю, что весь массив должен быть проверен для каждого элемента, и если элемент найден, запись, в которой он найден, удаляется из массива, но что я Видно, что проверяется только темп [0], а затем вся оставшаяся часть массива сплайсирована и возвращается пустым (temp.length поворачивается от 14 до 1) ...
'1; 2; 3' Это не массив. –
Есть ли причина, по которой вы пытаетесь объединить массив, с которым работаете, вместо использования 'filter' или что-то еще? – ssube
Конечным результатом должен быть возвращенный массив без дубликатов, и я понятия не имею, как использовать фильтр –