Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Abstract: When working with arrays in certain specific contexts, such as extracting unique values, it's crucial to employ appropriate techniques to avoid duplicates. This article guides you through resolving such issues when attempting to obtain unique values from an array, particularly in the context of linked issues.

Problem Description: In a scenario, where you're trying to extract unique values from an array, encountering duplicate values can be a common challenge.

For example, retrieving unique project names from linked issues might result in duplicates due to multiple associations or other factors.Here's a basic example to get unique values from an array:

Code Block
{% set array = [1, 2, 2, 3, 4, 4, 5] %}
{% set uniqueValues = [] %}
{% for item in array %}
    {% if item not in uniqueValues %}
        {% set _ = uniqueValues.append(item) %}
    {% endif %}
{% endfor %}
{{ uniqueValues }}

This script will output [1, 2, 3, 4, 5], which contains only the unique values from the original array.

Now, let's integrate this concept into Jira and JMWE. Suppose you want to extract unique linked project keys from issues in a certain initiative. Here's how you can achieve that using JMWE in Jira:

Solution: To address this issue effectively, you can utilize the following approach, ensuring that only distinct values are retained:

Code Block
{% set linkIssues = issue | linkedIssues("Initiative Contains") | field("fields.project.key") %}
{% set uniqueProjects = [] %}

{% for project in linkIssues %}
    {% if uniqueProjects.indexOf(project) === -1project not in uniqueProjects %}
        {% set _ = uniqueProjects.pushappend(project) %}
    {% endif %}
{% endfor %}

{{ uniqueProjects }}

Explanation:

...

  1. linkedIssues

...

  1. Function: Fetches the linked issues based on the specified link type

...

  1. ("Initiative Contains").

...

  1. field Function: Extracts the project keys (fields.project.key) from the linked issues

...

  1. .

  2. Initialization: An empty list uniqueProjects is initialized to store unique project keys.

...

In the loop, each project key is checked against the uniqueProjects list.

  1. For Loop: Iterates over each project in linkIssues.

  2. Condition Check: Checks if the project is not already in uniqueProjects.

  3. Appending Unique Values: If the project is not present (not in uniqueProjects), it is appended to the uniqueProjects list.

  4. Output: Finally, the unique project keys are printed out.

Conclusion: By employing Following the provided approach, you can effectively extract unique values from an array while mitigating duplicate entries. This ensures accurate data representation, particularly in project management contexts where distinct project associations are essential.

...