Путь к игровой площадке: 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”