Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS/jQuery将数组合并到另一个数组中';s对象_Javascript_Jquery_Arrays_Merge - Fatal编程技术网

Javascript JS/jQuery将数组合并到另一个数组中';s对象

Javascript JS/jQuery将数组合并到另一个数组中';s对象,javascript,jquery,arrays,merge,Javascript,Jquery,Arrays,Merge,如何将数组添加到另一个数组的对象中 我有以下数组: projectSave=({id:1,name:'Foo',desc:'Bar',boards:{},hotspots{}) 我想用来自不同阵列的数据填充板和热点对象 allBoards={id:'b1,name:'Board 1';id:'b2,name:'Board 2'} allhospots={id:'h1,类型:'link';id:'h2,类型:'link'} 如何将数据填充到数组的对象中 提前多谢 你试过了吗 projectSave

如何将数组添加到另一个数组的对象中

我有以下数组:

projectSave=({id:1,name:'Foo',desc:'Bar',boards:{},hotspots{})

我想用来自不同阵列的数据填充热点对象

allBoards={id:'b1,name:'Board 1';id:'b2,name:'Board 2'}

allhospots={id:'h1,类型:'link';id:'h2,类型:'link'}

如何将数据填充到数组的对象中

提前多谢

你试过了吗

projectSave.boards= allBoards;
projectSave.hotspots=allHotspots;

首先,所有董事会应:

allBoards = [{id: 'b1, name: 'Board 1'}, {id: 'b2, name: 'Board 2'}]; 
{}
之间的所有内容都被视为对象。在
[]
中,是什么使它成为这些对象的数组。这使它成为对象{}的数组[]<代码>所有热点
应以相同的方式完成

您必须在阵列中循环并重新创建
projectSave
的对象,然后将它们添加到
热点
阵列中

for (var i = 0; i<allBoards.length; i++){
  projectSave.boards.push({id: allBoards[i].id,
                name: allBoards[i].name});

}
for (var i = 0; i<allHotspots .length; i++){
  projectSave.hotspots .push({id: allHotspots [i].id,
                type: allHotspots [i].type});
}

for(var i=0;i我忍不住注意到代码中有语法错误,字符串没有正确关闭,分号用作数组分隔符而不是逗号,有些属性应该是数组而不是对象(我想这是您的意图),所以我也对它们进行了更正

由于您还将其标记为jQuery,并且为了防止对象逐渐变得更复杂,这里有一种jQuery方法

var projectSave = { id: 1, name: 'Foo', desc: 'Bar', boards: [], hotspots: [] };

var allBoards = [{id: 'b1', name: 'Board 1'}, {id: 'b2', name: 'Board 2'}];

var allHotspots = [{id: 'h1', type: 'link'}, {id: 'h2', type: 'link'}];


$.extend(true, projectSave, {
    boards: allBoards,
    hotspots: allHotspots
});

// Test
console.info(projectSave);

哇,花了一个小时尝试使用.push或.concat…非常感谢您的快速回复,它工作得很好。除非我弄错了,否则这样做不会在您的对象中创建数组的副本,而是对该数组的引用。您不想这样做。如果您想避免由于不愿意更改到obje而导致的复制问题,请cts可以通过……来实现。最初的问题并没有说要在……projectSave.boards=allBoards;projectSave.hostspots=allhostspots;然后allBoards=null;allhostspots=null中复制它。他告诉我如何将一个数组添加到另一个数组的对象中?他希望添加(复制)一个数组的项到另一个数组。如果所有板和所有热锅的长度始终相同,则可以在单个循环中执行此操作。如果答案解决了您的问题,请确保向上投票并接受它。