Я хочу сохранить все данные в новый массив в зависимости от его типа. Если это «хранилище», данные должны храниться в массиве магазинов [], если тип является клиентом, данные должны храниться в массиве клиентов и т. Д. Я довольно новичок в 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: "[email protected]", address_id: 4536, add_date: null}},
{type:"customer", data:{customer_id: 59, store_id:193, first_name: "John", last_name: "Stevens", email: "[email protected]", address_id: 2473, add_date: null}},
{type:"customer", data:{customer_id: 29, store_id:614, first_name: "Sarah", last_name: "Pym", email: "[email protected]", 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);
}
}
}
}
как насчет 'фильтра()'? 'matchedData = allData.filter (data => {return (data.type === 'store');});' then 'stores.push (matchedData);' – mickdev
Одна из проблем заключается в том, что 'allData.slice (i) 'сдвигает все последующие элементы вниз (потому что вы удаляете элемент), что испортило ваш индекс' i'. – qxz
@mickdev Не хотите, чтобы 'stores = stores.append (matchedData);' вместо 'stores.push (matchedData);'? – qxz