Convert array of strings into an array of objects

I have this JavaScript array:

[ "124857202", "500255104", "78573M104" ]

I want to convert this particular array into an array of objects as shown below:

[
  { name: "124857202" },
  { name: "500255104" },
  { name: "78573M104" }
]

Use Array#map to convert each value into a different value:

var newArr = arr.map(function(value) {
  return {name: value};
});

Array#map applies the callback to each element in the array and returns a new array containing the return values of the callback.


I would take a look at the array.map function in javascript.

const mappedArr = arr.map(value => {
  return {
    name: value
  }
})

Another approach - Array#reduce.

var arr = ["124857202", "500255104", "78573M104"];
var res = arr.reduce(function(s, a){
    s.push({name: a});
    return s;
  }, [])
  
console.log(res);

I want to convert this particular array into an array of objects as shown below

If you want to change the actual array in place (rather than creating a new array), you can use a for loop to iterate the indexes of your array. For each index, you can replace the value with an object {name: arr[i]}. This object has a name key, and takes a value which is the current element arr[i].

const arr = [ "124857202", "500255104", "78573M104" ];
for(let i = 0; i < arr.length; i++) {
  arr[i] = {name: arr[i]};
}
console.log(arr);

Or, if you want to make a new array and leave the original untouched, you can use Felix's answer, here it can be re-written to use more modern ES6 features to make it more concise, such as an arrow function and shorthand property names:

const arr = [ "124857202", "500255104", "78573M104" ];
const res = arr.map(name => ({name}));
console.log(res);