【发布时间】:2022-01-02 19:23:22
【问题描述】:
我有两个对象数组:inputData 和 jobList。我必须比较两个对象数组的 primarySkills 数组,并仅返回两个数组中匹配的值。我的对象数组如下:
let inputData = [
{
"candidateID": "911772331",
"skillSet": ["Information Technology"],
"addressCity": "Bengaluru",
"addressState": "KA",
"country": "India",
"primarySkills": ['asp.net', 'react', 'javascript'],
"secondarySkills": ['powerbi', 'redux'],
"preferredPositionType": [],
}
]
let jobList = [
{
jobId: '600039355',
jobType: 'fulltime',
primarySkills: [ 'asp.net','node' ],
secondarySkills: [ 'javascript' ],
skillSet: [ 'javascript' ],
Address: 'Indonesia, Bekasi Kabupaten, 53, Jalan Londan 5',
City: 'Bekasi Kabupaten',
State: 'JABODETABEK',
Zipcode: '17522',
Country: 'Indonesia'
},
{
jobId: '562190375',
jobType: 'fulltime',
primarySkills: [ 'javascript','mainframe' ],
secondarySkills: [ 'javascript' ],
skillSet: [ 'javascript' ],
Address: 'India, Pune, 411001, Pune, Pune Station',
City: 'Pune',
State: 'MH',
Zipcode: '411001',
Country: 'India'
},
{
jobId: '883826845',
jobType: 'fulltime',
primarySkills: [ 'sqlserver', 'react', 'powershell' ],
secondarySkills: [ 'powerbi' ],
skillSet: [ 'powerbi' ],
Address: 'ประเทศไทย, หมู่ที่ 3, 1234',
City: 'หมู่ที่ 3',
State: null,
Zipcode: '57110',
Country: 'ประเทศไทย'
}
]
我已经完成了下面提到的代码来实现这一点:
jobList.forEach((item) => {
inputData.forEach((data) => {
for (let i = 0; i <= item.primarySkills.length; i++) {
for (let j = 0; j <= data.primarySkills.length; j++) {
if (item.primarySkills[i] === data.primarySkills[j]) {
PMSkill.push(item.primarySkills[i]);
} else {
PMSkill.push(0)
}
}
}
})
})
Expected output to be like in the PMSkill array:
let PMSkill= [
{
jobId: '600039355',
jobType: 'fulltime',
primarySkills: [ 'asp.net'],----here asp.net is the only skill matching with inputData primarySkill
secondarySkills: [ 'javascript' ],
skillSet: [ 'javascript' ],
Address: 'Indonesia, Bekasi Kabupaten, 53, Jalan Londan 5',
City: 'Bekasi Kabupaten',
State: 'JABODETABEK',
Zipcode: '17522',
Country: 'Indonesia'
},
{
jobId: '562190375',
jobType: 'fulltime',
primarySkills: [ 'javascript'],
secondarySkills: [ 'javascript' ],
skillSet: [ 'javascript' ],
Address: 'India, Pune, 411001, Pune, Pune Station',
City: 'Pune',
State: 'MH',
Zipcode: '411001',
Country: 'India'
},
{
jobId: '883826845',
jobType: 'fulltime',
primarySkills: ['react'],
secondarySkills: [ 'powerbi' ],
skillSet: [ 'powerbi' ],
Address: 'ประเทศไทย, หมู่ที่ 3, 1234',
City: 'หมู่ที่ 3',
State: null,
Zipcode: '57110',
Country: 'ประเทศไทย'
}
]
【问题讨论】:
-
问题是什么?你的代码不起作用吗?如果是这样 - 会发生什么以及应该发生什么?如果代码不起作用,那么您需要什么帮助?
-
是的,代码不起作用。目前发生的情况是 PMSkill 数组给出了错误或空白值。预期的是两个对象数组的primarySkills 字段应该是comapred 并且应该返回PMSkill 数组中的共同值。
-
@tanu ... OP 通常还描述了预期的结果/输出。
-
对不起,这是我第一次@这个平台,所以错过了。当 inputData 第一次与 JobList 进行比较时,预期的输出应该是 ['javascript']。打印两个对象数组中的共同值。
标签: javascript arrays foreach reduce intersection