cancel
Showing results for 
Search instead for 
Did you mean: 

Using 'in' clause in a mapper

krupalibshah
Contributor

I am trying to use ‘in’ clause in a mapper snap. But it does not evaluate correctly.

30 in [30,40,50] ----> false

30 in [‘30’,‘4’,‘50’] ----> false

(x => x in [‘4’,‘5’,‘6’])(4) ----> false

Has anyone tried it already? Am I missing anything?

1 ACCEPTED SOLUTION

roi6rieK
New Contributor

Syntax for checking if a value is in an array is the same as in javascript.

Try:

[30,40,50].indexOf(30) != -1 —> true

[30,40,50].indexOf(90) != -1 —> false

The reason for the “!= -1” is that indexOf returns -1 if the element is not found in an array. Otherwise it returns the index.

Same method works for strings.

View solution in original post

5 REPLIES 5

dmiller
Admin Admin
Admin

Verified with Dev that “in” tests for index, not value, so 30 in [30,40,50] will be false, but 2 in [30,40,50] will be true.


Diane Miller
Community Manager

Thanks for the help.

However I think it should search for values #enhancement-requests

dmiller
Admin Admin
Admin

it currently works similar to JavaScript: in operator - JavaScript | MDN


Diane Miller
Community Manager

roi6rieK
New Contributor

Syntax for checking if a value is in an array is the same as in javascript.

Try:

[30,40,50].indexOf(30) != -1 —> true

[30,40,50].indexOf(90) != -1 —> false

The reason for the “!= -1” is that indexOf returns -1 if the element is not found in an array. Otherwise it returns the index.

Same method works for strings.