我正在尝试将一个数组的内容放入另一个数组中。我有这个 json ($scopeProducts)...
{
"ID": "...",
"Groups": [
{
"Products": []
}
{
"Other": []
}
]
}
我正在尝试将以下 json 添加到“产品”数组 ($scope.selectedProducts) 中...
[
{
"ProductCode": "Code1",
},
{
"ProductCode": "Code1",
},
]
我最终得到了这个......
{
"ID": "...",
"Groups": [
{
"Products":
[
[
{
"ProductCode": "Code1",
},
{
"ProductCode": "Code1",
},
]
]
}
{
"Other": []
}
]
}
...这是错误的(检查产品数组中的双 [[)。我正在使用 javascript 推送功能...
$scopeProducts.Groups[0].Products.push($scope.selectedProducts);
有人能告诉我如何在不创建双数组 [[]] 的情况下正确执行此操作吗?非常感谢
最佳答案
您的代码将一个数组作为条目插入另一个数组,而不是将条目附加到其中。
如果你想附加它(除非 Angular 有一些实用函数):
$scopeProducts.Groups[0].Products.push.apply($scopeProducts.Groups[0].Products, $scope.selectedProducts);
这有点棘手:它使用 Function#apply
调用带有多个参数的 push
,每个参数对应 $scope.selectedProducts
中的每个条目。这是因为 JavaScript 数组没有原生的 append
方法;最接近的是concat
,它创建一个新数组。但以上适用于附加功能。
关于javascript - 将一个数组复制到另一个数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28857078/