Значение по умолчанию для карты

Запрос через две разные базы данных - это распределенный запрос. Ниже приведен список некоторых методов плюс плюсы и минусы:

  1. Связанные серверы: обеспечить доступ к более широкому спектру источников данных, чем репликация SQL Server обеспечивает
  2. Связанные серверы: Подключайтесь к источникам данных, которые не поддерживают репликацию или которые требуют специального доступа
  3. Связанные серверы: выполняйте лучше, чем OPENDATASOURCE или OPENROWSET
  4. Функции OPENDATASOURCE и OPENROWSET: удобны для извлечения данных из источников данных на разовой основе. OPENROWSET также имеет BULK-объекты, которые могут / не могут содержать файл формата, который может быть fiddley
  5. OPENQUERY: не поддерживает переменные
  6. Все являются решениями T-SQL. Относительно легко реализовать и настроить
  7. Все зависит от соединения между источником и удалением, что может повлиять на производительность и масштабируемость
0
задан Matías Fidemraizer 13 July 2018 в 09:20
поделиться

1 ответ

Прежде всего, чтобы ответить на вопрос о стандарте Map: Javascript Map, предложенный в ECMAScript 2015, не включает установщик для значений по умолчанию. Это, однако, не мешает вам реализовать эту функцию самостоятельно.

Если вы просто хотите распечатать список, всякий раз, когда m [whatever] не определено, вы можете просто: console.log(m.get('whatever') || []);, как указано Li357 в его комментарии.

Если вы хотите для повторного использования этой функции вы также можете инкапсулировать ее в такую ​​функцию, как:

function getMapValue(map, key) {
    return map.get(key) || [];
}

// And use it like:
const m = new Map();
console.log(getMapValue(m, 'whatever'));

Если это, однако, не удовлетворяет вашим потребностям и вы действительно хотите, чтобы карта имела значение по умолчанию, вы можете написать свой собственный класс карты для него, например:

class MapWithDefault extends Map {
  get(key) {
    return super.get(key) || this.default;
  }
  
  constructor(defaultValue) {
    super();
    this.default = defaultValue;
  }
}

// And use it like:
const m = new MapWithDefault([]);
console.log(m.get('whatever'));

0
ответ дан Friedow 17 August 2018 в 13:31
поделиться
  • 1
    Я считаю, что вы должны поддерживать то, что уже требует конструктор Map, не так ли? – Matías Fidemraizer 13 July 2018 в 09:19
Другие вопросы по тегам:

Похожие вопросы: