Nano Hash - криптовалюты, майнинг, программирование

Есть ли функция или метод в javascript, который объединил бы несколько объектов?

У меня есть база данных postgres, из которой я запрашиваю, которая возвращает мне набор объектов из моего запроса. Стек, который я использую, - это node express, javascript, и я использую веб-сокеты для перехвата передачи данных. Я пытаюсь скомпилировать объекты обратно. Это код, который я использую после получения данных из базы данных.

`socket.on('get2GTPmatch', function(team2){
  for(var i = 0; i<team2.rows.length; i++){
    console.log(team2.rows[i]);
  }
});'




Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 3, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 3, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 3, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 2, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 2, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 1, assists: 2}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fer", kills: 4, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 1, assists: 1}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "coldzera", kills: 3, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 1, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "coldzera", kills: 2, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 1, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 1, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 0, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fer", kills: 1, deaths: 0, assists: 1}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "TACO", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "fnx", kills: 0, deaths: 0, assists: 0}
Object {name: "Luminosity", alias: "FALLEN", kills: 2, deaths: 1, assists: 0}
Object {name: "Luminosity", alias: "coldzera", kills: 0, deaths: 1, assists: 0}

Есть ли простой способ объединить все объекты, которые я получаю, в один объект с {name: , alias:, kills: (всего объектов под тем же именем/псевдонимом), :deaths: (то же, что и kills), Assets :(то же, что убивает)} ?

Спасибо за помощь. Я еще нуб. Извиняюсь.


  • Что плохого в простом переборе объектов и заполнении оттуда значениями нового объекта? 28.03.2016
  • Связанный с этим вопрос: stackoverflow.com/questions/25047463/ 28.03.2016
  • developer.mozilla.org/en-US/ документы/Интернет/JavaScript/Справочник/ 28.03.2016
  • Можете ли вы быть немного более конкретным? Извините, я все еще очень новичок в javascript. Буду ли я использовать цикл .forEach? 28.03.2016
  • @powerup7 Подумайте, как бы вы сделали это на любом другом языке. Пройдите через team2.rows, создайте новый объект каждый раз, когда вы найдете новую комбинацию имени и псевдонима, обновите соответствующее значение убийств, псевдонимов и т. д. каждый раз, когда вы встретите объект с тем же именем и псевдонимом. Используйте набор или карту для запроса комбинаций имени/псевдонима. 28.03.2016
  • Хорошо, спасибо за помощь. Я покопаюсь в этом. 28.03.2016

Ответы:


1

Возможно, используя метод Object.assign():

var objs_merged = {};
socket.on('get2GTPmatch', function(team2){
    for(var i = 0; i < team2.rows.length; i++) {
        objs_merged = Object.assign(objs_merged, team2.rows[i]);
    }
});

Если вы хотите иметь один объект с суммированными свойствами, это было бы намного проще сделать с вашим запросом к базе данных.

28.03.2016
  • Тогда я сделал это через длинный sql-запрос. Мне просто нужно было отдыхать и не биться головой по 10 часов в день. :) 28.03.2016
  • Рад, что ты понял это. Гораздо проще группировать и суммировать запросы. 28.03.2016

  • 2
    client.query(
        "SELECT teams.name AS team, players.alias, SUM(kills) AS kills, SUM(deaths) AS deaths, SUM(assists) AS assists FROM rounds \
        JOIN player_rounds ON rounds.id=player_rounds.round_id \
        JOIN players ON player_rounds.player_id=players.steam_id \
        JOIN teams ON players.team=teams.id \
        WHERE rounds.game_id='B3Il5v' \
        GROUP BY players.alias, teams.name\
        ORDER BY teams.name",
        function(err,results){
          if(err) {
            return console.error('error occurred');
          }
          // console.log(results);
          socket.emit('getKDAmatch', results)
    

    });

    Дело в том, что у меня была проблема с SQL group by. Когда я просто использовал group by team.name, по какой-то причине это выдавало ошибку.

    28.03.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..