如何将数组添加到另一个数组的对象中?
我有以下数组:
projectSave = ({ id: 1, name: 'Foo', desc: 'Bar', boards: {}, hotspots {} });
我想用来自单独数组的数据填充主板和热点对象。
allBoards = {id: 'b1, name: 'Board 1'; id: 'b2, name: 'Board 2'}
allHotspots = {id: 'h1, type: 'link'; id: 'h2, type: 'link'}
如何将数据填充到数组的对象中?
提前多多感谢!
答案 0 :(得分:1)
首先,allBoards应该是:
allBoards = [{id: 'b1, name: 'Board 1'}, {id: 'b2, name: 'Board 2'}];
{}
之间的所有内容都被视为对象。 []
内部是使它成为这些对象的数组的原因。这使它成为对象{}的数组[]。 allHotSpots
应该以同样的方式完成。
您必须遍历数组并重新创建projectSave
的对象,并将它们添加到boards
和hotspots
数组中。
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});
}
如果您只是尝试设置projectSave.boards = allBoards
,那么您只是存储引用,而不是数组的副本。如果您经常这样做,那么创建克隆方法可能会更好。
答案 1 :(得分:0)
我不禁注意到你的代码中有语法错误,字符串未正确关闭,半冒号用作数组分隔符而不是逗号,而某些属性应该是数组而不是对象(我假设是你的意图),所以我也纠正了它们。
由于你还将它标记为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);
答案 2 :(得分:-1)
你试过吗
projectSave.boards= allBoards;
projectSave.hotspots=allHotspots;