Может кто-то, пожалуйста, помогите мне лучше понять конструктивное решение о том, чтобы строки JavaScript повторялись в ES2015? Большинство итераций представляют собой сборники других вещей: Array
, Set
, Map
, Generator
(видa sorta). Строка может быть только набором строк (ну, кодов Unicode). Таким образом, если вы хотите, чтобы функция принимала набор строк (например, Set
строк или генератор, который дает строки) или одной строкой, невозможно отличить намерение пользователя. Она имела в виду одну строку или итерабельность кодовых страниц? Итерация над символами кажется угловым случаем по сравнению с обходом коллекций строк. Моя склонность в этом случае будет связана с строковыми параметрами специального случая, когда (предполагаемый) тип равен string
∪ Iterable<string>
.Почему строки повторяются в ES2015?
function deleteDocuments(ids /* string or Iterable<string> */) {
if('string' === typeof ids) {
deleteSingleDocById(ids);
} else {
for(let id of ids) {
deleteSingleDocById(id);
}
}
}
Что мне не хватает?
Если ваша функция ожидает один параметр, она будет либо итерируемой строкой, либо итерируемым массивом. Почему бы просто не обработать итерабельность? Ваша дилемма неясна. – Pointy
FWIW это также способ, которым итерация строк работала в Python. –
Что ожидается результат? – guest271314