# MapIndexed

MapIndexed[f,expr]

applies f to the elements of expr, giving the part specification of each element as a second argument to f.

MapIndexed[f,expr,levelspec]

applies f to all parts of expr on levels specified by levelspec.

MapIndexed[f]

represents an operator form of MapIndexed that can be applied to an expression.

# Details and Options

• MapIndexed uses standard level specifications:
•  n levels 1 through n Infinity levels 1 through Infinity {n} level n only {n1,n2} levels n1 through n2
• The default value for levelspec in MapIndexed is {1}.
• A positive level n consists of all parts of expr specified by n indices.
• A negative level -n consists of all parts of expr with depth n.
• Level 1 consists of numbers, symbols, and other objects that do not have subparts.
• Level 0 corresponds to the whole expression.
• With the option setting , MapIndexed also applies to heads of expressions and their parts.
• MapIndexed traverses the parts of expr in a depth-first order, with leaves visited before roots. »
• MapIndexed always effectively constructs a complete new expression and then evaluates it.
• MapIndexed works on SparseArray objects, effectively by applying Normal to them.
• MapIndexed works on Association objects, giving part specifications in the form Key[k].
• MapIndexed[f][expr] is equivalent to MapIndexed[f,expr].

# Examples

open allclose all

## Basic Examples(6)

 In[1]:=
 Out[1]=

#2 gives the indices of each part:

 In[1]:=
 Out[1]=
 In[1]:=
 Out[1]=
 In[2]:=
 Out[2]=

Map over an association:

 In[1]:=
 Out[1]=

Map over nested associations:

 In[1]:=
 Out[1]=

Use the operator form of MapIndexed:

 In[1]:=
 Out[1]=