如何合并2个javaScript数组

How to merge 2 javaScript Array?

本文关键字:2个 javaScript 数组 合并 何合并      更新时间:2023-09-26

我有两个数组

我想将第二个数组中的字段值与第一个数组合并。

每个值(即"Test")属于在第二数组的_embedded部分(_embedded. profilefield .id)中列出的Profile Field id。

第一个数组:Profile Fields

0: Object
field: "FieldLabel1"
id: 1
1: Object
field: "FieldLabel2"
id: 7
2: Object
field: "FieldLabel3"
id: 12

第二个数组:配置文件字段值

0: Object
id: 1
value: "Test"
_embedded: Object
  profileField: Object
    field: "FieldLabel1"
    id: 1
1: Object
id: 2
value: "links"
_embedded: Object
  profileField: Object
    field: "FieldLabel2"
    id: 7

我怎么能得到一个数组与两个信息在一起?

使用数组方法中的mapfilter, U可以将这些数组与您需要的条件合并。请参考以下示例:

/* 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

嗨,简单地使用Jquery,见下面的代码!

For Array:

var newArray = $.merge(1Array, 2Array);
对象:

var object = $.extend({}, object1, object2);

For array: jquery merge array

For Object: jquery merge Object

谢谢