From 772302d07922834ec8907c2faa4ac111086ad8f3 Mon Sep 17 00:00:00 2001 From: Cindy Chang Date: Thu, 15 Aug 2024 14:36:59 +0800 Subject: [PATCH] fix: use filter to replace find --- src/views/Discover/Map/Map.vue | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/views/Discover/Map/Map.vue b/src/views/Discover/Map/Map.vue index 3ef3f5d..03cd436 100644 --- a/src/views/Discover/Map/Map.vue +++ b/src/views/Discover/Map/Map.vue @@ -417,9 +417,8 @@ export default { const activityNodeArray = nodes.filter(node => node.data.type === 'activity'); // 找出除了 start, end 以外所有的 node 的 option value activityNodeArray.map(node => nodeOptionArr.push(node.data[this.dataLayerType][this.dataLayerOption])); - // 刪掉重複的元素,將node的option值從小到大排序(映對色階淺到深) - nodeOptionArr = [...new Set(nodeOptionArr)].sort((a, b) => a - b); - + // 將node的option值從小到大排序(映對色階淺到深) + nodeOptionArr = nodeOptionArr.sort((a, b) => a - b); for(let i = 0; i < ImgCapsules.length; i++) { const startIdx = i * groupSize; const endIdx = (i === ImgCapsules.length - 1) ? activityNodeArray.length : startIdx + groupSize; @@ -427,14 +426,16 @@ export default { } for(let level = 0; level < leveledGroups.length; level++) { leveledGroups[level].map(option => { - const curNode = activityNodeArray.find(activityNode => activityNode.data[this.dataLayerType][this.dataLayerOption] === option); - curNode.data = { - ...curNode.data, - nodeImageUrl: ImgCapsules[level], - } - }) - } - + // 考慮可能有名次一樣的情形 + const curNodes = activityNodeArray.filter(activityNode => activityNode.data[this.dataLayerType][this.dataLayerOption] === option); + curNodes.map(curNode => { + curNode.data = { + ...curNode.data, + nodeImageUrl: ImgCapsules[level], + }; + }); + }); + } }, }, async created() {