在Javascript中使用map函数返回新值

在Javascript中使用map函数返回新值,javascript,arrays,json,object,Javascript,Arrays,Json,Object,这是我的json: [ { gsm: 'gsm', firstName: 'firstname', lastName: 'lastname' }, { gsm: '123456789', firstName: 'Mohamed', lastName: 'Sameer'}, { gsm: '987654321', firstName: 'Hameed', lastName: 'Basha'}] 我希望我的最终输出如下所示: [ { gsm: 'gsm', firstN

这是我的json:

[ { gsm: 'gsm',
  firstName: 'firstname',
  lastName: 'lastname' },
{ gsm: '123456789',
  firstName: 'Mohamed',
  lastName: 'Sameer'},
{ gsm: '987654321',
  firstName: 'Hameed',
  lastName: 'Basha'}]
我希望我的最终输出如下所示:

[ { gsm: 'gsm',
  firstName: 'firstname',
  lastName: 'lastname',
  userKey: 'Key1'},
{ gsm: '123456789',
  firstName: 'Mohamed',
  lastName: 'Sameer',
  userKey: 'Key1'},
{ gsm: '987654321',
  firstName: 'Hameed',
  lastName: 'Basha',
  userKey: 'Key1'}]
我需要使用任何javascript方法,如map…等来实现这一点

使用
map

var output = arr.map( s => ( s.userKey = "Key1", s ) );
演示

var-arr=[{
gsm:“gsm”,
名字:“名字”,
lastName:'lastName'
},
{
gsm:'123456789',
名字:“穆罕默德”,
姓氏:“Sameer”
},
{
gsm:'987654321',
名字:“哈米德”,
姓:“巴沙”
}
];
var输出=arr.map(s=>(s.userKey=“Key1”,s));
控制台日志(输出)使用
地图

var output = arr.map( s => ( s.userKey = "Key1", s ) );
演示

var-arr=[{
gsm:“gsm”,
名字:“名字”,
lastName:'lastName'
},
{
gsm:'123456789',
名字:“穆罕默德”,
姓氏:“Sameer”
},
{
gsm:'987654321',
名字:“哈米德”,
姓:“巴沙”
}
];
var输出=arr.map(s=>(s.userKey=“Key1”,s));
控制台日志(输出)


如果不想改变原始数组,请执行以下操作:

const arr=[{gsm:'gsm',
名字:“名字”,
lastName:'lastName'},
{gsm:'123456789',
名字:“穆罕默德”,
姓氏:'Sameer'},
{gsm:'987654321',
名字:“哈米德”,
姓氏:'Basha'}]
const newArr=arr.map(项=>({
项目
userKey:'Key1',
}))

console.log(newArr)
如果您不想改变原始数组:

const arr=[{gsm:'gsm',
名字:“名字”,
lastName:'lastName'},
{gsm:'123456789',
名字:“穆罕默德”,
姓氏:'Sameer'},
{gsm:'987654321',
名字:“哈米德”,
姓氏:'Basha'}]
const newArr=arr.map(项=>({
项目
userKey:'Key1',
}))
log(newArr)
您可以使用它生成对象的副本,并分配新属性和获取新数组

var original=[{gsm:'gsm',firstName:'firstName',lastName:'lastName'},{gsm:'123456789',firstName:'Mohamed',lastName:'Sameer'},{gsm:'987654321',firstName:'Hameed',lastName:'Basha'}],
copy=original.map(o=>Object.assign({},o,{key:'key1'}));
控制台日志(副本);
控制台日志(原件)
.as console wrapper{max height:100%!important;top:0;}
可以用于生成对象的副本,并分配新属性和获取新数组

var original=[{gsm:'gsm',firstName:'firstName',lastName:'lastName'},{gsm:'123456789',firstName:'Mohamed',lastName:'Sameer'},{gsm:'987654321',firstName:'Hameed',lastName:'Basha'}],
copy=original.map(o=>Object.assign({},o,{key:'key1'}));
控制台日志(副本);
控制台日志(原件)
.as控制台包装{max height:100%!important;top:0;}
您可以这样做:)

var data=[{gsm:'gsm',
名字:“名字”,
lastName:'lastName'},
{gsm:'123456789',
名字:“穆罕默德”,
姓氏:'Sameer'},
{gsm:'987654321',
名字:“哈米德”,
姓氏:'Basha'}]
var finalarray=data.map(x=>(x.userKey='Key1',x));
控制台日志(finalarray)您可以这样做:)

var data=[{gsm:'gsm',
名字:“名字”,
lastName:'lastName'},
{gsm:'123456789',
名字:“穆罕默德”,
姓氏:'Sameer'},
{gsm:'987654321',
名字:“哈米德”,
姓氏:'Basha'}]
var finalarray=data.map(x=>(x.userKey='Key1',x));

控制台日志(finalarray)
这将改变原始数组
arr
。我认为forEach在这种情况下更合适
arr.forEach(s=>s.userKey=“Key1”)。因为数组中的值都没有更新,所以只更新它们引用的对象。@Xufox如果OP不希望原始数组发生变异,那么Nina的答案就足够了。我本来打算做同样的事情,但意识到尼娜已经做了。这将改变原始数组
arr
。我认为forEach在这种情况下更合适
arr.forEach(s=>s.userKey=“Key1”)。因为数组中的值都没有更新,所以只更新它们引用的对象。@Xufox如果OP不希望原始数组发生变异,那么Nina的答案就足够了。我本打算做同样的事情,但意识到尼娜已经做了。可能重复的可能重复的可能重复的可能重复的他正在用snippet放。谢谢你的这个代码片段,它可能会提供一些有限的、即时的帮助。A通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有其他类似问题的读者更有用。请在您的答案中添加一些解释,包括您所做的假设。感谢您提供此代码片段,它可能会提供一些有限的、即时的帮助。A通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。
data.map(el => ({ ...el, userKey: 'Key1' }))