Javascript 多数组对象操作
我有两个类似上面的数组。通过比较应聘者的姓名,我想把gred_id放入数组1。我被困在这里Javascript 多数组对象操作,javascript,jquery,json,Javascript,Jquery,Json,我有两个类似上面的数组。通过比较应聘者的姓名,我想把gred_id放入数组1。我被困在这里 array1 = [{"name":"John"},{"name":"James"}]; array2 = [{"gred_id":1,"name":"John","gred":"A"},{"gred_id":2,"name":"James","gred":"B"}]; 这就是我最终想要的: $.each(array1,function(){ var name= this["name"];
array1 = [{"name":"John"},{"name":"James"}];
array2 = [{"gred_id":1,"name":"John","gred":"A"},{"gred_id":2,"name":"James","gred":"B"}];
这就是我最终想要的:
$.each(array1,function(){
var name= this["name"];
$.each(array2, function(){
if(name == this.name){
this["grey_id"] = {"grey_id":this.id}; // not sure this is correct or wrong
}
});
});
您可以将object1迭代存储为子对象,因为当存在不同的作用域时,会对其进行修改
itm1=此
因此array1对象将存储在范围array1迭代和array2迭代中的每个迭代中
array1 = [{"name":"John","gred_id":1},{"name":"James","gred_id":2}];
您可以将object1迭代存储为子对象,因为当存在不同的作用域时,会对其进行修改
itm1=此
因此array1对象将存储在范围array1迭代和array2迭代中的每个迭代中
array1 = [{"name":"John","gred_id":1},{"name":"James","gred_id":2}];
根据jQuery的
.each()
,您不需要将该项存储在变量中。您可以使用.each()
函数参数。第一个参数返回索引,第二个参数返回项
因此,您可以像这样优化代码
输出
var array1 = [{"name":"John"},{"name":"James"}];
var array2 = [{"gred_id":1,"name":"John","gred":"A"},{"gred_id":2,"name":"James","gred":"B"}];
$.each(array1, function (i, item) {
$.each(array2, function (j, val) {
if (item.name === val.name) {
item.grey_id = val.gred_id;
}
});
});
根据jQuery的
.each()
,您不需要将该项存储在变量中。您可以使用.each()
函数参数。第一个参数返回索引,第二个参数返回项
因此,您可以像这样优化代码
输出
var array1 = [{"name":"John"},{"name":"James"}];
var array2 = [{"gred_id":1,"name":"John","gred":"A"},{"gred_id":2,"name":"James","gred":"B"}];
$.each(array1, function (i, item) {
$.each(array2, function (j, val) {
if (item.name === val.name) {
item.grey_id = val.gred_id;
}
});
});
尝试利用$.map()
var数组1=[{
“姓名”:“约翰”
}, {
“姓名”:“詹姆斯”
}];
变量array2=[{
“gred_id”:1,
“姓名”:“约翰”,
“gred”:“A”
}, {
“gred_id”:2,
“姓名”:“詹姆斯”,
“gred”:“B”
}];
array1=$.map(array1,函数(val,键){
return val.name==array2[key].name
?$.extend({},val,{“gred_id”:array2[key].gred_id})
:val
});
$(“pre”).text(JSON.stringify(array1,null,2))代码>
尝试利用$.map()
var数组1=[{
“姓名”:“约翰”
}, {
“姓名”:“詹姆斯”
}];
变量array2=[{
“gred_id”:1,
“姓名”:“约翰”,
“gred”:“A”
}, {
“gred_id”:2,
“姓名”:“詹姆斯”,
“gred”:“B”
}];
array1=$.map(array1,函数(val,键){
return val.name==array2[key].name
?$.extend({},val,{“gred_id”:array2[key].gred_id})
:val
});
$(“pre”).text(JSON.stringify(array1,null,2))代码>
使用,$.grep
和$。每个
$.each(array1, function(key, val){
match = $.grep(array2, function(obj){ // search for match
return obj.name == val.name;
});
array1[key].gred_id = match[0].gred_id; // assign the match
});
将,$.grep
与$一起使用。每个
$.each(array1, function(key, val){
match = $.grep(array2, function(obj){ // search for match
return obj.name == val.name;
});
array1[key].gred_id = match[0].gred_id; // assign the match
});