получить индекс значения из списка / массива в сети данных

У меня есть массив в dataweave, скажем,

[value1,value2,value3,value4] 

Я хочу получить индекс своего значения в массиве. Предположим, если я хочу узнать, в какой позиции индекса присутствует 'value2', он должен вернуть 2.

**code I tried:**

%dw 1.0
%output application/xml
%var myArray =[] as :array
---
{
 root: using (myArray = payload.values.*value distinctBy $) {
 (payload.values.*value map{
    position: "needs logic to get position of current value in the myArray created"
  })
}


**input:**
<values>
  <value>value1</value>
  <value>value2</value>
  <value>value3</value>
  <value>value4</value>
  <value>value1</value>
  <value>value3</value>
</values>


expected output:
  <root>
    <position>1<position>
    <position>2<position>
    <position>3<position>
    <position>4<position>
    <position>1<position>
    <position>3<position>
  <root>

person tortoise    schedule 04.02.2016    source источник
comment
Привет, было бы лучше показать, что вы вводите и что вы хотите получить на выходе. Это могло помочь составить общую картину и найти подходящие решения.   -  person Mauro Rocco    schedule 04.02.2016


Ответы (1)


Что о :

%dw 1.0
%output application/xml
%var myArray =[] as :array
---
{
 root: using (myArray = payload.values.*value distinctBy $) {
    (payload.values.*value map (
        position: $$
    )) }
}

Это выводит:

<?xml version='1.0' encoding='UTF-8'?>
<root>
  <position>0</position>
  <position>1</position>
  <position>2</position>
  <position>3</position>
  <position>4</position>
  <position>5</position>
</root>
person Ryan Carter    schedule 04.02.2016
comment
извините, я не был ясен в вопросе ранее .... показанный результат является ожидаемым результатом. - person tortoise; 04.02.2016
comment
но ваш вывод не похож на индексы массива? - person Ryan Carter; 05.02.2016
comment
да ... его arrayindex + 1 - это необходимое значение - person tortoise; 05.02.2016