JS: Array.prototype.map

By Xah Lee. Date: . Last updated: .

Apply function f to every element of the array myArray. Return the new array. Original array is not changed.

If thisArg is given, it will be used as this value of f. If it is not given, undefined is used.

[see JS: “this” Binding]

The function f is passed 3 args: • current_elementcurrent_indexmyArray.

const a1 = [3,4,5];
const a2 = a1.map( ((x) => (x+1)) );

console.log(a2);  // [ 4, 5, 6 ]

// original is not changed
console.log(a1);  // [ 3, 4, 5 ]

Example of using Array.prototype.map, with the passed function using more than 1 argument.

// example of using Array.prototype.map, with the passed function using more than 1 arg

const a1 = ["a", "b", "c"];

const a2 = a1.map(
    ((x,i,ar) => (console.log ( x, i, ar )))
);

// prints
// a 0 [ 'a', 'b', 'c' ]
// b 1 [ 'a', 'b', 'c' ]
// c 2 [ 'a', 'b', 'c' ]

Using Second Argument

This code shows what does it do:

// example of using Array.prototype.map with second argument

const a1 = [3,4,5];

const obj = { "jj":9 };

a1.map( function (x) { console.log ( x , this ); }, obj );

// prints

// 3 { jj: 9 }
// 4 { jj: 9 }
// 5 { jj: 9 }

This code shows a example:

// example of using map with a second arg

const ff = function (x) {
// add a property to the object this function is context of
this[x.toString()] = x+1;
return x+1;
}

// new object
var jj = {};

// array
var a1 = [1,2,3];

// map ff to a1, with context jj
var a2 = a1.map(ff, jj);

// new array value
console.log (a2); // [ 2, 3, 4 ]

// jj is changed
console.log (jj); // { '1': 2, '2': 3, '3': 4 }

[see JS: Array.prototype.forEach]

JavaScript Basics

  1. JavaScript Basics
  2. Operators
  3. true, false
  4. Branch Control
  5. Loop
  6. Array Basics
  7. Object Basics

Value Types

  1. Value Types
  2. Primitive Value
  3. “typeof” Operator

Variable

  1. let
  2. const
  3. var 👎
  4. var Order 👎
  5. var Scope 👎
  6. Global Variable
  7. Destructuring Assignment

String

  1. String Overview
  2. Template String
  3. String Escape Sequence
  4. Unicode Escape Sequence
  5. Char, Code Unit, Codepoint

Function

  1. Define Function
  2. Arrow Function ⭐
  3. Function Params
  4. “arguments” Object
  5. Rest Params ⭐
  6. Arg Default Value ⭐
  7. Arg Destructure ⭐
  8. f Declaration vs Expression
  9. Closure
  10. f call apply bind
  11. Functional Programing

Object Property

  1. Property Overview
  2. Property Key
  3. Dot vs Bracket Notation
  4. Create/Delete Property
  5. Get/Set Property
  6. Property Existence
  7. Access Property
  8. List Properties
  9. Property Attributes
  10. Getter/Setter
  11. Property Descriptor
  12. Symbol

Object and Inheritance

  1. Object Overview
  2. Object Type
  3. Find Object's Type
  4. Prototype Chain
  5. Check is in Prototype Chain
  6. Get/Set Parent
  7. Show Prototype Chain
  8. Create Object
  9. Object Literal Expr
  10. Create Object with Parent X
  11. Prevent Adding Property
  12. Clone Object
  13. Test Object Equality
  14. Add Method to Prototype

Array

  1. Understand JS Array
  2. Create Array
  3. Sparse Array
  4. Array-Like Object
  5. Array How-To

Constructor/Class

  1. “this” Binding
  2. What's Constructor?
  3. Property Key "prototype"
  4. Operator “new”
  5. Operator “instanceof”
  6. Property Key “constructor”
  7. Class
  8. Keyword “extends”
  9. Keyword “super”

Iterable ⭐

  1. Interface
  2. Iterable
  3. Iterator
  4. Iterator Prototype
  5. for-of Loop
  6. Spread Operator
  7. Generator
  8. Generator Function

Regular Expression

  1. RegExp Basics
  2. RegExp Syntax
  3. Regex Find/Replace

Date

  1. Date Tutorial
  2. Compute Date Range

Set Object

  1. Set Object
  2. Union, Intersection, Diff

Map Object

  1. Map Object
  2. Iterate Over Map Object
  3. Convert Object to/from Map
  4. Map Filter
  5. Reverse Key/Value

Number

  1. String to/from Number
  2. Convert Decimal/Hexadecimal
  3. Format Number
  4. Random Number

Misc

  1. Import/Export
  2. Promise
  3. Proxy
  4. Try Catch Throw Finally
  5. ES2015 Features
  6. ES2016, 2017, 2018, 2019
  7. How to Convert ES5 to ES2015
  8. Style Guide
  9. Semicolon Rules
  10. Exclamation Before Function
  11. How to Determine Strict Mode?
  12. x.y.z Associativity
  13. Function Chain
  14. Random Number, Range, Integer, Element
  15. Timing JS Code
  16. Range Function for Array
  17. Tagged Template String
  18. Allowed Characters in Identifier
  19. Encode URL, Escape String

Object Reference

If you have a question, put $5 at patreon and message me.

Web Dev Tutorials