···392392 slices: FeedViewPostsSlice[],
393393 _dryRun: boolean,
394394 ): FeedViewPostsSlice[] => {
395395- const candidateSlices = slices.slice()
396396-397395 // early return if no languages have been specified
398396 if (!preferredLangsCode2.length || preferredLangsCode2.length === 0) {
399397 return slices
400398 }
401399402402- for (let i = 0; i < slices.length; i++) {
403403- let hasPreferredLang = false
404404- for (const item of slices[i].items) {
400400+ const candidateSlices = slices.filter(slice => {
401401+ for (const item of slice.items) {
405402 if (isPostInLanguage(item.post, preferredLangsCode2)) {
406406- hasPreferredLang = true
407407- break
403403+ return true
408404 }
409405 }
410410-411406 // if item does not fit preferred language, remove it
412412- if (!hasPreferredLang) {
413413- candidateSlices.splice(i, 1)
414414- }
415415- }
407407+ return false
408408+ })
416409417410 // if the language filter cleared out the entire page, return the original set
418411 // so that something always shows