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中复制它。他告诉我如何将一个数组添加到另一个数组的对象中?他希望添加(复制)一个数组的项到另一个数组。如果所有板和所有热锅的长度始终相同,则可以在单个循环中执行此操作。如果答案解决了您的问题,请确保向上投票并接受它。