获取经过分类筛选 + 置顶排序后的图片列表
()
| 2702 | |
| 2703 | /** 获取经过分类筛选 + 置顶排序后的图片列表 */ |
| 2704 | function getFilteredItems() { |
| 2705 | var items = galleryAllItems; |
| 2706 | var imgCatMap = niGetImgCatMap(); |
| 2707 | var pinnedIds = niGetPinnedIds(); |
| 2708 | |
| 2709 | // 按分类筛选 |
| 2710 | if (currentCatFilter === 'pinned') { |
| 2711 | items = items.filter(function (it) { |
| 2712 | var pid = pickId(it); |
| 2713 | var u = pickUrl(it); |
| 2714 | var id = pid || extractIdFromCdnUrl(u); |
| 2715 | return id && pinnedIds.indexOf(id) >= 0; |
| 2716 | }); |
| 2717 | } else if (currentCatFilter && currentCatFilter !== 'all') { |
| 2718 | items = items.filter(function (it) { |
| 2719 | var pid = pickId(it); |
| 2720 | var u = pickUrl(it); |
| 2721 | var id = pid || extractIdFromCdnUrl(u); |
| 2722 | return id && imgCatMap[id] === currentCatFilter; |
| 2723 | }); |
| 2724 | } |
| 2725 | |
| 2726 | // 置顶排前:置顶图片排在前面,非置顶保持原序 |
| 2727 | items = items.slice().sort(function (a, b) { |
| 2728 | var pidA = pickId(a); |
| 2729 | var uA = pickUrl(a); |
| 2730 | var idA = pidA || extractIdFromCdnUrl(uA); |
| 2731 | var pidB = pickId(b); |
| 2732 | var uB = pickUrl(b); |
| 2733 | var idB = pidB || extractIdFromCdnUrl(uB); |
| 2734 | var pinA = idA && pinnedIds.indexOf(idA) >= 0 ? 0 : 1; |
| 2735 | var pinB = idB && pinnedIds.indexOf(idB) >= 0 ? 0 : 1; |
| 2736 | if (pinA !== pinB) return pinA - pinB; |
| 2737 | // 同为置顶的按置顶顺序 |
| 2738 | if (pinA === 0) { |
| 2739 | var idxA = pinnedIds.indexOf(idA); |
| 2740 | var idxB = pinnedIds.indexOf(idB); |
| 2741 | return idxA - idxB; |
| 2742 | } |
| 2743 | return 0; |
| 2744 | }); |
| 2745 | return items; |
| 2746 | } |
| 2747 | |
| 2748 | var filtered = getFilteredItems(); |
| 2749 | var total = filtered.length; |
no test coverage detected