javascript - 将一个数组中的元素添加到另一个数组中

标签 javascript

我想根据其类型将所有数据存储到一个新数组中。如果是“store”,则数据应存储在stores[]数组中,如果类型是customer,则数据应存储在customer数组中,等等。我对Javascript很陌生,所以我不确定是否我正确存储了它。

var allData = [
{type:"store", data:{store_id: 297, name: "Scotiabank - Main Branch", address_id: 1023}},
{type:"store", data:{store_id: 614, name: "Scotiabank - Hamilton", address_id: 1984}},
{type:"customer", data:{customer_id: 26, store_id:297, first_name: "Dave", last_name: "Bennett", email: "dbennett@gmail.com", address_id: 4536, add_date: null}},
{type:"customer", data:{customer_id: 59, store_id:193, first_name: "John", last_name: "Stevens", email: "jstevens22@hotmail.com", address_id: 2473, add_date: null}},
{type:"customer", data:{customer_id: 29, store_id:614, first_name: "Sarah", last_name: "Pym", email: "spym99@hotmail.com", address_id: 1611, add_date: null}},
{type:"address", data:{address_id: 1023, address: "2895 Yonge St.", city:"Toronto", province:"ON", postal_code:"L4C02G"}},
{type:"address", data:{address_id: 1984, address: "3611 Main St. West", city:"Hamilton", province:"ON", postal_code:"R5O8H5"}},
];


var CustomerDB = 
{
    customer:[],
    addresses:[],
    stores:[],

    add:function insertData (allData)
    {
      for (var i = 0; i < allData.length; i++)
          {
              if (type =="store")
                  {
                      stores = allData.slice(i);

                  }
              else if (type == "customer")
                  {
                      customer = allData.slice(i);
                  }
              else if (type == "address")
                  {
                      addresses = allDara.slice(i);
                  }
           }
    }
}

最佳答案

var CustomerDB = {
  customer: [],    // should be exactly like the type (to make it easier to add)
  address: [],     // this too (should be adress not adresses)
  store: [],       // ...

  add: function insertData(allData) {
    allData.forEach(function(d) {
      this[d.type].push(d);
    });
  }
}

forEach将循环遍历 allData 数组中的每个对象。对于每个项目,如果类型为 customerthis[d.type] 将被评估为 this["customer"]这正是 this.customer (客户数组)。

关于javascript - 将一个数组中的元素添加到另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42181981/

相关文章:

javascript - 我的 Async/Await (ES2017) 函数没有按顺序运行?

Javascript:生成具有固定均值和标准差的随机数

javascript - jQuery(element) 是逐个选择每个元素还是一次性选择所有元素?

javascript - 使用 Javascript 在提示之间创建中断

javascript - 如何在 OpenLayers 中沿着道路画一条线

javascript - 在 IndexedDB 中预留空间

javascript - 在 Firebug 控制台中运行 jQuery 调用

javascript - 如何在 HTML 中为价格添加自动点?

javascript - AJAX 从 HTTP 到 HTTPS

javascript - jQuery 根据其他选择框替换选择中的值