javascript - 尝试创建对象字典时出现语法错误
问题描述
我从 API 获取一组对象,如下所示:
[
{
jobId:100,
jobName: "Java",
cities:[
{
cityId:10,
name : "chicago"
},
{
statusId:11,
name : "miami"
}]
},
{
jobId:101,
jobName: "Python",
cities:[
{
cityId:11,
name : "california"
},
{
cityId:12,
name : "texas"
}]
}
]
我想访问特定工作的城市名称,如下所示:
var jobId = 101;
var cityId = 12;
var texas = jobDict[jobId].cityDict[cityId] // output: texas
代码:
angular.forEach(response.data, function (data) {
if (jobsDict[data.jobId] == undefined) {
jobsDict[data.jobId] = [];
}
angular.forEach(data.cities, function (city) {
jobsDict[data.jobId].push({
cityDic[city.cityId]: city.name // syntax error here saying unexpected token
});
});
});
我正在尝试创建一个工作字典,并在工作字典中创建一个城市字典。
有人可以帮我解决问题并实现所需的输出吗?
解决方案
也许是这样的:
const jobArray = [{
jobId: 100,
jobName: "Java",
cities: [{
cityId: 10,
name: "chicago"
},
{
cityId: 11,
name: "miami"
}
]
},
{
jobId: 101,
jobName: "Python",
cities: [{
cityId: 11,
name: "california"
},
{
cityId: 12,
name: "texas"
}
]
}
];
function index_job_array_A(jobArray) {
return jobArray.reduce(
(acc, item) => Object.assign(acc, {
[item.jobId]: Object.assign({}, item, {
cities: item.cities.reduce(
(acc, item) => Object.assign(acc, { [item.cityId]: item }),
{}
)
})
}),
{}
);
};
function index_job_array_B(jobArray) {
let indexed_jobs = {};
jobArray.forEach(function(job) {
let indexed_cities = {};
job.cities.forEach(function(city) {
indexed_cities[city.cityId] = city;
});
indexed_jobs[job.jobId] = { ...job, cities: indexed_cities };
});
return indexed_jobs;
};
const jobDictA = index_job_array_A(jobArray);
const jobDictB = index_job_array_B(jobArray);
console.log(jobDictA['100'].cities['10']);
console.log(jobDictB['100'].cities['10']);
推荐阅读
- javascript - 从php中检索数据
- kubernetes - google PD 的 kubernetes 卷挂载问题(已安装 kubeadm)
- sql - 连接多个表时,总和是它应该是的倍数
- vb.net - 使用 Runspace 在 Visual Basic 中调用 powershell 脚本时出现 System.NullReferenceException
- ruby - 大型 JSON 字符串中的字符串插值
- python - 当python中的一行中有多个最大值时,在2维向量的每一行中查找最大值
- java - 只有在其他片段被销毁时才启动一个方法
- javascript - 对于 JavaScript 的 toLocaleDateString,是否有替代 dateStyle 和 timeStyle 的新标准?
- sql - Oracle SQL:未使用索引
- java - Spring LogOut 功能不注销