Array Map Function Doesn't Change Elements

Array Map Function Doesn't Change Elements

In JavaScript, I have an array, which is

array = [true, false]

In some cases, I am trying to initialize this array

array.map(item => {
   item = false
})

After running the above code, the array is not changed, it is still [true, false], so is .map not reliable sometimes?


ONE MORE QUESTION: After running my below code, the array is changed. Why does it work in this case?

let array = [{id:1, checked: false}, {id:2, checked:true}]
array.map(item => {
    item.checked = true
})

array becomes [{id:1, checked: true}, {id:2, checked:true}]

1

4 Answers

JavaScript Array map() Method

*)creates a new array with the results of calling a function for every array element and it calls the provided function once for each element in an array, in order.

Note: map() Method does not execute the function for array elements without values and it does not change the original array.

more details

Array map function is working fine. The map() method creates a new array with the results of calling a provided function on every element in this array. map() does not mutate the array on which it is called.

var array = [true, false]



var new_array = array.map(function(item) {
  return false;
});

console.log(array)
console.log(new_array)
0

If your mapping is simple, you can do:

var array = [true, false];
array = array.map(_ => false);

console.log(array);
// [false, false]
1

.map() method is not mutable, check out its return value:

var arr2 = array.map(item => false)
console.log(arr2)

In functional programming, it's recommended that values do not change often, and JavaScript borrowed it. At least for .map() and .reduce() this is true. Make sure you know .map() well.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Elena Rostova
Author

Elena Rostova

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.