[英]How to map through an array and dynamically set key and values inside mapped array in javascript
我有一个具有以下格式的数组 arr
data:{
result: [Array]
}
我正在映射一个数组并设置键和值以形成这样的新数组。
const userData= arr.map((user) => ({
userid : user.data.result[0].info.uid,
termStat: user.data.result[0].info['attr'].termStat
}));
这会给我 userData 数组
[{
userid: 'y74',
termStat:[[Object]]
}]
我怎样才能把它做成下面的格式。 将 key 作为 userid 的值。 这是预期的结果
{
y74: { termStat: [[Object]]
}
您可以将密钥设置为userid
。
const arr = [{ data: { result: [ { info: { uid: 12, attr: { termStat: 'foobar' } } } ] } }] const userData= arr.map(user => ({ [user.data.result[0].info.uid]: { 'termStat': user.data.result[0].info['attr'].termStat } })); console.log(userData)
如果我理解正确,您可以将用户标识用作变量,将其放在方括号中并为其赋值
[user.data.result[0].info.uid]: {'termStat': user.data.result[0].info['attr'].termStat}
数组 map function 总是返回一个数组。 如果你想从输入数组Array.reduce()返回 map function 会很有帮助。 就像是:
const arr = [{ data: { result: [{ info: { uid: 'y74', attr: { termStat: [[{}]] } } }] } }]; const userData = arr.reduce((result, user) => { const key = user.data.result[0].info.uid; const termStat = user.data.result[0].info['attr'].termStat; result[key] = {termStat}; return result; }, {}); console.log(userData);
希望这可以帮助:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.