Javascript-如何将多个对象添加到一个空数组

时间:2018-11-16 00:29:31

标签: javascript

我正在尝试将多个对象-公司名称添加到listBox公司中。我使用$scope.companies.push(newCompany[0].name);将公司添加到列表中。但是因为我使用了newCompany[0].name,所以只添加了第一个对象的公司。

现在,如何在不输入newCpmpany[1].name的情况下将第二个公司名称添加到列表中?假设有50家公司,那么我不能将这50家公司全部添加。是否有更好的方法一次性添加所有名称?例如循环或增加元素之类的东西?寻求帮助。预先感谢。

var newCompany = [{
            name: "Huawei", // -->COMPANY NAME
            email: "Drath@yahoo.com",
            phone: "123-123-1234",
            owner: "Drath",
            street: "Gin Blvd",
            city: "Austin",
            country: "USA",
            duns:"123112321",
            type: "buyer"
        },
        {
            name: "Asus", // -->COMPANY NAME
            email: "Vadar@yahoo.com",
            phone: "999-123-8888",
            owner: "Vadar",
            street: "Vince Blvd",
            city: "Dallas",
            country: "USA",
            duns: "123100000",
            type: "supplier"
        }];
        
        window.localStorage.setItem("newCompany", JSON.stringify(newCompany));

$scope.companies = [];
    var newCompany = JSON.parse(localStorage.getItem("newCompany"));
    $scope.companies.push(newCompany[0].name);

2 个答案:

答案 0 :(得分:3)

您可以尝试使用spread

$scope.companies.push(...newCompany.map(item => item.name));

或者为什么您需要完全推动?为什么不只使用精确值初始化$scope.companies

var newCompany = JSON.parse(localStorage.getItem("newCompany"));
$scope.companies = newCompany.map(item => item.name)

答案 1 :(得分:3)

如果不支持传播,则可以使用常规的数组拼接

var names = newCompany.map(function(company){return company.name});
$scope.companies.splice(-1, 0, names);