[英]Adding elements from one array to another
我想根据其类型将所有数据存储到一个新数组中。 如果是“ 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
数组中的每个对象。 对于每个项目,例如,如果类型为customer
this[d.type]
恰好是this.customer
(客户数组),则将其评估为this["customer"]
。
您可以尝试在customerDB外部运行函数:
var CustomerDB =
{
customer:[],
addresses:[],
stores:[],
}
var insertData = function(){
for (var i = 0; i < allData.length; i++)
//console.log(allData[i]);
{
if (allData[i]['type'] == "store")
{
CustomerDB.stores.push(allData[i]);
}
else if (allData[i]['type'] == "customer")
{
CustomerDB.customer.push(allData[i]);
}
else if (allData[i]['type'] == "address")
{
CustomerDB.addresses.push(allData[i]);
}
}
}();
这是一个Codepen: http ://codepen.io/giannidk/pen/egbmRL?editors=0012
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.