Друзья привет у меня массивы в суммы собираются где одинаковые ключи, потмо выдаю два массива в куче, но вот проблема чтото один из массивов через раз пустой , в чем может быть проблема , в сортировке может или в сборке самой , второй массив который sell отображается идеально без косяков, а первый через раз пустой
попытаюсь разьяснить код
//это пришел запрос с двумя параметрами
app.get('/order-book', (request, response) => {
//это те параметры
const c_currency = request.query.c_currency;
const currency = request.query.currency;
//тут я делаю выбор ордеров с типом 1
const orderbookbuy = 'SELECT btc,btc_price FROM orders WHERE c_currency = ? AND currency = ? AND order_type = 1 ORDER BY btc_price DESC';
//тут я делаю выбор ордеров с типом 2
const orderbooksell = 'SELECT btc,btc_price FROM orders WHERE c_currency = ? AND currency = ? AND order_type = 2 ORDER BY btc_price ASC';
//отправляю первый запрос
var ordersbuy = {};
pool.query(orderbookbuy, [c_currency, currency], function(error, result, fields) {
if (error) throw error;
//полученый ответ передаю в функцию
ordersbuy = result;
myFunctionbuy(ordersbuy);
});
//тут функция собирает массивы с одинаковым btc_price в один и выдает суммы btc_price и btc тобишь количество
function myFunctionbuy(ordersbuy) {
const arr = ordersbuy;
const imm1 = {};
arr.forEach(item => {
if (!imm1[item.btc_price]) {
imm1[item.btc_price] = item.btc;
} else {
imm1[item.btc_price] += item.btc;
}
});
const resultbuy = Object.keys(imm1).map(key => {
const obj = {
price: +key,
order_amount: imm1[key]
}
return obj;
})
ressbuy = resultbuy;
}
//тут второй массив который работает замечательно никаких косяков , они оба олдинаковые и потмо в итоге я их выдаю в одном многомерном массиве
var orderssell = {};
pool.query(orderbooksell, [c_currency, currency], function(error, result, fields) {
if (error) throw error;
orderssell = result;
myFunctionsell(orderssell);
});
function myFunctionsell(orderssell) {
const arr = orderssell;
const imm = {};
arr.forEach(item => {
if (!imm[item.btc_price]) {
imm[item.btc_price] = item.btc;
} else {
imm[item.btc_price] += item.btc;
}
});
const resultsell = Object.keys(imm).map(key => {
const obj = {
price: +key,
order_amount: imm[key]
}
return obj;
})
resssell = resultsell;
//тут я их обоих передаю в функцию чтобы выдать через express
sumBuy(ressbuy, resssell);
}
function sumBuy(ressbuy, resssell) {
response.send({
bid: ressbuy,
ask: resssell
})
}
});
}
я понимаю что желательно бы вообще делать один запрос общий не деля на тип а потмо уже чере цикл переработат их сумировать одинаковые цены, но знаний не особо хватате покачто , я только вот публичные данные начал переносить на ноде, потмоучто пхп очень не справляется ,
} else { imm1[item.btc_price] += item.btc;
} } );
const resultbuy = Object.keys(imm1).map(key => { const obj ={ price: +key, order_amount: imm1[key] } return obj;
}) ressbuy = resultbuy;
– nik black Aug 07 '19 at 05:04<>или сочетание клавишCtrl+M, слева кнопкаПривести в порядок. Орфографию и пунктуацию, к сожалению, не исправляет. – Aug 07 '19 at 05:25