我正在尝试将数组的内容放入另一个数组中。我有这个json($ scopeProducts)...
{
"ID": "...",
"Groups": [
{
"Products": []
}
{
"Other": []
}
]
}
我正在尝试将以下json添加到'Products'数组中($ scope.selectedProducts)...
[
{
"ProductCode": "Code1",
},
{
"ProductCode": "Code1",
},
]
我最终得到了这个......
{
"ID": "...",
"Groups": [
{
"Products":
[
[
{
"ProductCode": "Code1",
},
{
"ProductCode": "Code1",
},
]
]
}
{
"Other": []
}
]
}
...这是错误的(检查double [[在产品数组中]。我正在使用javascript push函数...
$scopeProducts.Groups[0].Products.push($scope.selectedProducts);
有没有人可以告诉我如何在不创建双数组[[]]的情况下正确执行此操作?非常感谢
答案 0 :(得分:2)
您的代码将数组作为条目推送到另一个数组中,而不是将条目附加到其中。
如果你想追加它(除非Angular有一些实用功能):
$scopeProducts.Groups[0].Products.push.apply($scopeProducts.Groups[0].Products, $scope.selectedProducts);
这有点棘手:它使用Function#apply
使用多个参数调用push
,$scope.selectedProducts
中的每个条目都有一个参数。这是因为JavaScript数组没有本地append
方法;它们最接近的是concat
,它会创建一个 new 数组。但上述功能可用于附加功能。