我有以下代码:
<ac:structured-macro ac:name="html"><ac:plain-text-body><![CDATA[<iframe src="http://YOURDOMAIN/path_to_file" noborder="0" width="830" height="800" scrolling="yes" seamless></iframe>]]></ac:plain-text-body></ac:structured-macro>
我希望得到以下结果:
list1的:
- 0:对象(苏黎世)
- 1:对象(伦敦)
- 3:对象(纽约)
- 4:对象(虚拟)
- 5:对象(Dummy2)
但我得到了这个:
list1的:
如何获得我的expectet结果?
谢谢和欢呼。
答案 0 :(得分:8)
在Array#concat
旁边,您可以使用Array#push.apply
var list1 = { Items: [{ ID: 1, Name: "Zurich" }, { ID: 2, Name: "London" }, { ID: 3, Name: "New York" }] },
list2 = { Items: [{ ID: -1, Name: "Dummy" }, { ID: 0, Name: "Dummy2" }] };
[].push.apply(list1.Items, list2.Items);
console.log(list1);
&#13;
答案 1 :(得分:4)
问题是如何使用push()而不是concat():
for (var i = 0; i < list2.Items.length; i++) {
list1.Items.push(list2.Items[i]);
}
答案 2 :(得分:2)
list1 = {
Items: [
{
ID: 1,
Name: "Zurich"
},
{
ID: 2,
Name: "London"
}, {
ID: 3,
Name: "New York"
}
]
};
list2 = {
Items: [
{
ID: -1,
Name: "Dummy"
},
{
ID: 0,
Name: "Dummy2"
}
]
};
list1.Items = list1.Items.concat(list2.Items);
console.log(list1);
&#13;
答案 3 :(得分:1)
尝试:
list2.items.forEach(function (item) {
list1.items.push(item)
})
答案 4 :(得分:1)
list1.Items.push(...list2.Items)
Spread是ES2015的一项功能。您的目标浏览器或运行时可能尚不支持它,因此请检查compatibility table(或使用babel等转录程序。)
答案 5 :(得分:0)
您需要遍历items
中的每个list2
,然后抓取它们以推送到list1
。以下是使用$.each
的代码段
var list1 = {
Items: [
{
ID: 1,
Name: "Zurich"
},
{
ID: 2,
Name: "London"
}, {
ID: 3,
Name: "New York"
}
]
};
var list2 = {
Items: [
{
ID: -1,
Name: "Dummy"
},
{
ID: 0,
Name: "Dummy2"
}
]
};
$(list2.Items).each(function(k,v){
list1.Items.push(v);
})
console.log(list1);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>