问题描述
在一次采访中,我被要求对对象数组进行突变,以使数据以以下方式出现
[
{
"companyName": "ABC","members": [
{
"id": 13121212,"firstName": "Ray","lastName": "Fernandis","points": 1800,"position": 1
},{
"id": 13131313,"firstName": "Carrie","lastName": "Yoda","points": 1200,"position": 2
}
]
}]
,样本数据如下。
[
{
"communityName": "ABC","lastUpdateTimestamp": {
"date": {
"year": 2020,"month": 10,"day": 7
},"time": {
"hour": 18,"minute": 6,"second": 5,"nano": 536529000
}
},"data": {
"listChannelsData": [
{
"channelId": 1234,"channelName": "BCD","members": [
{
"id": 13121212,"position": 1
}
]
}
]
}
},{
"communityName": "DEF","second": 21,"nano": 47894000
}
},"data": {
"listChannelsData": [
{
"channelId": 3421,"channelName": "GHI","firstName": "Nicholas","lastName": "Xin","points": 800,"position": 2
},{
"id": 13131313,"points": 1000,"position": 1
}
]
}
]
}
}
]
对我来说,议程是打印从示例json派生的json,我只能找出这么多的代码,这是stackoverflow的礼貌
function dictionary(data) {
var map = {};
data.forEach(item => {
if (!Array.isArray(map[item.companyName])) {
map[item.companyName] = [item.data.listChannelsData];
} else {
map[item.communityName].push(item.data.listChannelsData);
}
});
return map;
}
console.log(dictionary(data));
但是现在,当我尝试使用另一个foreach循环为成员获取数据时,我无法访问成员的数据。任何人都可以帮助我成功访问成员数组并在其旁边打印公司名称的部分
解决方法
尝试此代码
var newArray = []
data.map((item,index) => {
newArray[index] = {companyName : item.communityName}
newArray[index].members = item.data.listChannelsData[0].members
})
数据是给定的数据。