Если вы используете Lodash, тогда вы можете использовать _.map
var users = [
{ user: 'barney', age: 36, active: true },
{ user: 'fred', age: 40, active: false },
{ user: 'travis', age: 37, active: true}
];
var convertedUsers = _.map(users, user => ({person: {item : {user}}}));
console.log(convertedUsers);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
Обратите внимание, что это будет означать, что при этом повторно используются исходные объекты, поэтому изменения в них будут перенесены в отображенный вывод:
var users = [
{ user: 'barney', age: 36, active: true },
{ user: 'fred', age: 40, active: false },
{ user: 'travis', age: 37, active: true}
];
var convertedUsers = _.map(users, user => ({person: {item : user}}));
users[0].user = 'betty'; //change barney -> betty
//change is reflected in the already mapped output
console.log(convertedUsers[0].person.item.user);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
Если это нежелательно, вы можете создавать новые объекты с таким же содержанием:
var users = [
{ user: 'barney', age: 36, active: true },
{ user: 'fred', age: 40, active: false },
{ user: 'travis', age: 37, active: true}
];
var convertedUsers = _.map(users, user => ({person: {item : {...user}}})); //note the {...users}
users[0].user = 'betty'; //change the original barney -> betty
//no change in the mapped result
console.log(convertedUsers[0].person.item.user);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
Вы можете сделать то же самое с простым JavaScript и Array # map :
var users = [
{ user: 'barney', age: 36, active: true },
{ user: 'fred', age: 40, active: false },
{ user: 'travis', age: 37, active: true}
];
var convertedUsersReusingObjects = users.map(user => ({person: {item : user}}));
var convertedUsersWithNewObjects = users.map(user => ({person: {item : {...user}}})) ;
console.log("convertedUsersReusingObjects:", convertedUsersReusingObjects);
console.log("----------------");
console.log("convertedUsersWithNewObjects:", convertedUsersWithNewObjects);
console.log("----------------");
users[0].user = 'betty'; //change the original barney -> betty
console.log("reusing objects: ", convertedUsersReusingObjects[0].person.item.user);
console.log("new objects: ", convertedUsersWithNewObjects[0].person.item.user);