Рубрики
Без рубрики

Серия Polyglot в JavaScript, Dart, Ruby, Python, Go: итерационная карта и набор

Путь игровой площадки: Collection/MAP_AND_SET/ITERTATING MAP В JavaScript, Dart … с меткой JavaScript, Dart, Python, Ruby.

Путь к игровой площадке: Collection/map_and_set/iter

Итерационная карта

  • В JavaScript Dart и GO обычно называют картой, в Ruby Hash, а в Python – словарь.
  • Итерационная карта можно разделить на три формы: пара, только для клавиш, только для значения или клавиш.

Итерационный набор

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

JavaScript

В JavaScript карта может быть представлена в двух типах: Объект и Карта Анкет Оба они имеют ключи (), значения (), записи () методы для итерации трех форм. Оба, по умолчанию, могут быть итерацией, итерационная карта возвращает элемент в [ключ, значение] формы, тогда как итерационный объект возвращает значения свойства объекта. JavaScript set iterable с использованием Фор

//iterate Map. By default, Map is iterable
for (const k of m) {
  log(k);
}

//iterate Map with keys
for (const k of m.keys()) {
  log(k);
}

//iterate Map with values
for (const v of m.values()) {
  log(v);
}

//iterate map with keys and values
for (const [k, v] of m) {
  log(k, v);
}

//iterate object by default using for-in')
for (const e in objects) {
  log(e);
}
//iterate object with keys
for (const k of Object.keys(objects)) {
  console.log(k);
}
//iterate object with values
for (const v of Object.values(objects)) {
  console.log(v);
}
//iterate object with keys and values
for (const [k, v] of Object.entries(objects)) {
  console.log(k, v);
}
//iterate set
let set = new Set([1, 2, 3]);
for (const e of set) {
  log(e);
}

Дрэк

DART, как и JavaScript, также имеет ключи, значения и записи, но реализованные как свойства вместо методов. В отличие от JavaScript, карта не является итерационной, поэтому нам нужно использовать один из трех методов. Тем не менее, установлен, используется с использованием за

for (var k in d.keys) {
    print(k);
  }
for (var v in d.values) {
  print(v);
}
for (var e in d.entries) {
  print("${e.key} ${e.value}");
}

Set set = new Set.from([1, 2, 3]);
for (var e in set) {
  print(e);
}

Рубин

В Руби, в то время как есть Ключи и Значения Свойства в хэш -классе, используя Каждый_КИН и каждый_value более выразительные варианты. И хэш, и набор являются итерационными, используя каждый метод Тем не менее, набор должен быть явно импортирован, используя обычный способ импорта Ruby: требуется ‘set’

// with keys
d.each_key {|k| p k}
d.keys.each {|k| p k}

// with values
d.each_value {|v| p v}
d.values.each {|k| p k}

// with keys and values
d.each {|k,v| p "#{k} #{v}" }

// iterate set
require 'set'
set = Set.new([1,2,3])
set.each{|e| p e}

Питон

Python также имеет три формы, реализованные как Keys (), значения () и элементы (). Как словарь, так и набор итерации с использованием обычного за

for k in d:
    print(k)

for k in d.keys():
    print(k)

for k in d.values():
    print(k)

# with keys and values
for k, v in d.items():
    print(k, v)

# iterate set
set = {1,2,3}
for e in set:
    print(e)

Идти

Карта итеральна. Сосредоточившись на простоте, GO предоставляет только for-range для итерации по значению, клавишу и клавишу (используя подчеркивание, чтобы игнорировать ключ или значение). Стандартного набора нет, вместо этого карта можно использовать для моделирования набора путем назначения значения каждого элемента с постоянным значением.

m := map[string]int{
"one":   1,
"two":   2,
"three": 3,
}

for k, v := range m {
  fmt.Println(k, v)
}

const t = true
set := map[string]bool{"one": t, "two": t, "three": t}

Оригинал: “https://dev.to/achristoph/polyglot-series-in-javascript-dart-ruby-python-go-iterating-map-and-set-5633”