Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как сделать распределение по процентам, чем дороже цена тем меньше шансов?

    @ski28 Автор вопроса
    Публикую решение как я сделал. Я реальный шанс разделил на 100 и тогда получается то что нужно.
    const gift = [
    { name : "Ручка", price : 12 },
    { name : "Телефон",  price : 2222  },
    {  name : "Блокнот", price : 33 },
    {name : "Альбом",price : 120 },
    {name : "Книга",  price : 333 },
    ];
    let allSum = gift.reduce((a, b) => a + (b["price"] || 0), 0);
    console.log(allSum); 
    gift.sort((a, b) =>  b.price - a.price );
    gift.forEach((e, i) => {
      gift[i].bigChance =  (100/(100 / (allSum / e.price)));
    });
    let allChance = gift.reduce((a, b) => a + (b["bigChance"] || 0),0);
    gift.forEach((e, i) => {
      gift[i].chance = ( 100 / (allChance / e.bigChance)).toFixed(4);
    });
    console.log(gift)

    Результат
    [
    {"name":"Телефон","price":2222,"bigChance":1.2241224122412242,"chance":"0.3588"},
    {"name":"Книга","price":333,"bigChance":8.168168168168169,"chance":"2.3943"},
    {"name":"Альбом","price":120,"bigChance":22.666666666666668,"chance":"6.6442"},
    {"name":"Блокнот","price":33,"bigChance":82.42424242424242,"chance":"24.1607"},
    {"name":"Ручка","price":12,"bigChance":226.66666666666666,"chance":"66.4420"}
    ]
    Ответ написан
  • Как передать указатель на массив в виде текста?

    @ski28 Автор вопроса
    Сделал через eval
    Ответ написан
    Комментировать
  • Как вытягивать данные из БД в реальном времени?

    @ski28
    Я бы сделал другую логику. Зачем постоянно дергать mysql ? Mysql должен отдавать данные только один раз , при загрузки страницы. Остальные сообщения должны доставляться пользователям на прямую по socket.io . И уже на этом этапе , данные парально должны записываться в mysql.
    Ответ написан