我希望通过匹配它们的公共属性将数组作为proproties放入其他数组中。我希望jobDetails能够与职业相匹配。可能的?
var job = [{
"uId": 1
}, {
"uId": 2
}]
var jobDetails = [{
"uId": 1,
"salary": 5000
}, {
"uId": 2,
"salary": 5000
}]
是否有可能产生类似
的东西var job = [{
"uId": 1,
"salary": [{
"uId": 1,
"salary": 5000
}]
}, {
"uId": 2,
"salary": [{
"uId": 2,
"salary": 5000
}]
}];
答案 0 :(得分:2)
你可以尝试这样的事情:http://jqversion.com/#!/XWFtbQb
for (var i = 0; i < job.length; i++) {
for (var j = 0; j < jobDetails.length; j++) {
if (job[i].uId == jobDetails[j].uId) {
job[i].salary = jobDetails[j];
}
}
}
console.log(job);
答案 1 :(得分:0)
这不是纯粹的JavaScript解决方案,但我喜欢使用underscore.js来对集合进行此类典型操作:
var finalCollection = [];
_.each(job, function(model){
var obj = _.findWhere(jobDetails, {uId: model.uId});
_.extend(model, {'salaray': obj});
finalCollection.push(model);
});
console.log(finalCollection);
我发现这个Javascript实用程序带负责一些繁重的工作,它使代码比阅读干循环更愉快。
答案 2 :(得分:0)
是的,您需要同时使用两个json对象
var array = [];
var object = {}
$.each( job, function ( k , kal ) {
$.each( jobDetails , function ( i , val) {
object.uId = i;
object.salary = val;
});
array.push(object);
});
的console.log(JSON.stringify(阵列));