如何合并2个javaScript数组?
我有两个数组 我想将第二个数组中的字段值与第一个数组合并 每个值(即“Test”)都属于第二个数组的_嵌入部分(_embedded.profileField.id)中列出的配置文件字段id 第一个数组:配置文件字段 第二个数组:配置文件字段值如何合并2个javaScript数组?,javascript,arrays,array-merge,Javascript,Arrays,Array Merge,我有两个数组 我想将第二个数组中的字段值与第一个数组合并 每个值(即“Test”)都属于第二个数组的_嵌入部分(_embedded.profileField.id)中列出的配置文件字段id 第一个数组:配置文件字段 第二个数组:配置文件字段值 如何将这两种信息结合在一起得到一个数组?Hi只需使用Jquery即可查看下面的代码 对于阵列: var newArray = $.merge(1Array, 2Array); 对于对象: var object = $.extend({}, object1
如何将这两种信息结合在一起得到一个数组?Hi只需使用Jquery即可查看下面的代码 对于阵列:
var newArray = $.merge(1Array, 2Array);
对于对象:
var object = $.extend({}, object1, object2);
对于阵列:
对于对象:
谢谢使用U中的
map
和filter
可以根据需要合并此数组。请参见以下示例:
/* your arrays definition */
var a = [{
field: "FieldLabel1",
id: 1
}, {
field: "FieldLabel2",
id: 7
}, {
field: "FieldLabel3",
id: 12
}
];
var b = [{
id: 1,
value: "Test",
_embedded: {
profileField: {
field: "FieldLabel1",
id: 1
}
}
}, {
id: 2,
value: "links",
_embedded: {
profileField: {
field: "FieldLabel2",
id: 7
}
}
}];
/* mergedArray contains merged data from two arrays arranged by id */
var mergedArray = a.map(function(aItem){
var value = b.filter(function(bItem) {
return aItem.id === bItem._embedded.profileField.id;
}).map(function(item){
return item.value;
}).pop();
aItem.value = value;
return aItem;
});
结果是:
margedArray: Array[3]
0: Object
field: "FieldLabel1"
id: 1
value: "Test"
1: Object
field: "FieldLabel2"
id: 7
value: "links"
2: Object
field: "FieldLabel3"
id: 12
value: undefined
你试过写一些代码吗?你试过搜索吗?你有一些原始的示例数据吗?$.merge是jquery臃肿的数组。concat-
$。merge(Array1,Array2)
比Array1=Array1多不了多少。concat(Array2)
以1/10的速度和10倍的内存完成。如果您认为这不是您的解决方案,请让我删除该答案。谢谢您的示例。我还可以显示没有关联值的空字段吗?是的,你可以在第一个(a
在我的示例中)数组上迭代。更新了显示空字段的示例,如果你想了解map
和filter
请尝试Jafar Husain的练习-
/* your arrays definition */
var a = [{
field: "FieldLabel1",
id: 1
}, {
field: "FieldLabel2",
id: 7
}, {
field: "FieldLabel3",
id: 12
}
];
var b = [{
id: 1,
value: "Test",
_embedded: {
profileField: {
field: "FieldLabel1",
id: 1
}
}
}, {
id: 2,
value: "links",
_embedded: {
profileField: {
field: "FieldLabel2",
id: 7
}
}
}];
/* mergedArray contains merged data from two arrays arranged by id */
var mergedArray = a.map(function(aItem){
var value = b.filter(function(bItem) {
return aItem.id === bItem._embedded.profileField.id;
}).map(function(item){
return item.value;
}).pop();
aItem.value = value;
return aItem;
});
margedArray: Array[3]
0: Object
field: "FieldLabel1"
id: 1
value: "Test"
1: Object
field: "FieldLabel2"
id: 7
value: "links"
2: Object
field: "FieldLabel3"
id: 12
value: undefined