javascript - 将一个数组复制到另一个数组时出现问题

标签 javascript arrays json angularjs

我正在尝试将一个数组的内容放入另一个数组中。我有这个 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/

相关文章:

javascript - 如何在 asp.net 中的文本框占位符中使用 mathjax?

javascript - D3 Javascript HREF 链接连接

具有无限子类别的 PHP 和 Mysql 树形导航菜单

python - Scrapy 输出 JSON 或 CSV

java - 如何从 jsonarray 检查特定的 json 数组参数值

javascript - 使用 Tablesorter 按列中选定选项的选择进行过滤

javascript - 配置预编译 Handlebars 模板的生成名称

c++ - Bad_alloc 声明数组时,似乎内存不够

javascript - 将数据从 .txt 文件发送到 JavaScript 数组

php - REST API Base64 图像 imagecreatefromstring() : Data is not in a recognized format