
ujeenator
20.10.2018
22:11:59
const obj = {
a: 'b',
c: 'd',
[Symbol.iterator]: function * () {
for (const kv of Object.entries(this)) {
yield kv
}
}
}
for (const [key, val] of obj) {
console.log('key=' + key)
console.log('val=' + val)
}
> "key=a"
> "val=b"
> "key=c"
> "val=d"

Viktor
20.10.2018
22:12:22
насколько я знаю, div1 никогда не сможет находиться между вторым и четвертым силами css)

Andrey
20.10.2018
22:12:49

Google

Norse
20.10.2018
22:13:27

ujeenator
20.10.2018
22:14:34

Viktor
20.10.2018
22:14:37
ну я бы по-другому и не сделал)

Анатолий
20.10.2018
22:15:01
Уже начали. Object.keys и т.д.
Но никак не закончат. Object.entries в черновике свежего стандарта, это немного не похоже на решение какой-то выдуманной тобой проблемы

Andrey
20.10.2018
22:15:11

Norse
20.10.2018
22:15:32
ну я бы по-другому и не сделал)
Да вот хз, может варианты еще какие есть
тип тут сейчас неточность, есть, элемент с любым индексом больше 0 будет выше дива 2

Анатолий
20.10.2018
22:15:42
От этого
for (const [k, v] of Object.entries({a:'b', c: 'd'})) {
console.log('key='+k)
console.log('val='+v)
}
до этого
foreach (k, v) in {a:'b', c: 'd'} {
console.log('key='+k)
console.log('val='+v)
}

ujeenator
20.10.2018
22:16:01

Norse
20.10.2018
22:16:31

Max
20.10.2018
22:16:41

Andrey
20.10.2018
22:16:54

Google

Viktor
20.10.2018
22:16:56

Анатолий
20.10.2018
22:17:27
Потому что массив из одного ключа и одного значения это ужасно некрасиво

Andrey
20.10.2018
22:17:51

Анатолий
20.10.2018
22:18:00
Если уж так - то лучше ключ и значение отдельно

Andrey
20.10.2018
22:18:11
Т.е. вместо 1 метода ты предлагаешь сделать 3? map, filter и reduce?

Max
20.10.2018
22:18:15

Анатолий
20.10.2018
22:18:43

ujeenator
20.10.2018
22:18:52

Анатолий
20.10.2018
22:19:35

Max
20.10.2018
22:20:20

Andrey
20.10.2018
22:20:33

Анатолий
20.10.2018
22:20:49

Andrey
20.10.2018
22:20:59

Max
20.10.2018
22:21:24

Andrey
20.10.2018
22:21:40
V8 умеет перемалывать через map, filter и т.д. очень производительно.

Aleksey
20.10.2018
22:22:29

ujeenator
20.10.2018
22:22:37

Viktor
20.10.2018
22:22:52

Andrey
20.10.2018
22:23:09

Google

Viktor
20.10.2018
22:23:49

Анатолий
20.10.2018
22:24:09

Andrey
20.10.2018
22:24:27

Анатолий
20.10.2018
22:24:51
Запись и красота кода
var top = from await getItems()
select name
where id > 5
order by updatedDate desc
group by groupId having groupId > 10;

Andrey
20.10.2018
22:25:10
omg
То самое говно, которое дотнетчики избегают сейчас.

Анатолий
20.10.2018
22:25:46
Видимо, ты не в курсе о цепочной записи
Проблема в том, что она длиннее, мусорнее и недекларативнее
Хотя в каком-то виде реализуема и в жс нативно

Andrey
20.10.2018
22:26:33
В курсе. В js уже есть эта цепочная запись.

Andrey
20.10.2018
22:26:52
А вот ту ебанину, которую ты написал выше не нужно.

ujeenator
20.10.2018
22:26:57

Andrey
20.10.2018
22:27:18
Так что тебе надо из линка, чего нет в js?

Анатолий
20.10.2018
22:27:48
скобки и аргументы хотя бы

ujeenator
20.10.2018
22:28:24
в новых стандартах JS будет пайплайнинг
что гораздо лучше чем линк

Анатолий
20.10.2018
22:28:31
Впрочем, если это надо переиспользовать, то конечно лучше цепочная, потому что оборачивать это в чейн будет гораздо ужаснее

Google

Анатолий
20.10.2018
22:28:46
хочу пайплайнинг в дотнет

Andrey
20.10.2018
22:29:05
F# называется.

Анатолий
20.10.2018
22:29:45
Уточню: в C#.NET

Andrey
20.10.2018
22:30:23
В C# уже и так говна навалом. Ещё и пайплайн тащить.

Max
20.10.2018
22:30:44
Вот вообще без враппера:
Object.prototype[Symbol.iterator] = function* () {
for (const key of Object.keys(this)) {
yield [key, this[key]];
}
}
for (let [key, value] of { a: "A", b: "B"}) {
console.log(`${key}: ${value}`);
}
Но так делать не стоит

Анатолий
20.10.2018
22:30:56
А ещё я хочу кортежи. А ещё out-переменные.
Ладно, подожду null-coalesce, не буду никого нервировать

Andrey
20.10.2018
22:31:09

Анатолий
20.10.2018
22:31:15
Я уже про жс

Admin
ERROR: S client not available

Andrey
20.10.2018
22:31:19
Я тоже.

ujeenator
20.10.2018
22:31:21

Max
20.10.2018
22:31:45

Анатолий
20.10.2018
22:31:47

Andrey
20.10.2018
22:32:08

Анатолий
20.10.2018
22:32:41
Ок

Andrey
20.10.2018
22:32:53
Особенно в js, где типов нет.

ujeenator
20.10.2018
22:33:09
out переменные не нужные когда есть деструктуризация

Google

Andrey
20.10.2018
22:33:26

ujeenator
20.10.2018
22:33:31
возвращаешь столько переменных сколько нужно

Andrey
20.10.2018
22:33:42

Анатолий
20.10.2018
22:33:43
А то я опять вспомню жквери, где простота, скорость и сахар реализуются за счёт надстройки над языком :)

Andrey
20.10.2018
22:34:51
Но out переменные не работают с асинхронными методами, так как возникают проблемы.

Анатолий
20.10.2018
22:35:20

Andrey
20.10.2018
22:35:39

Max
20.10.2018
22:35:44

Анатолий
20.10.2018
22:35:59

Max
20.10.2018
22:36:04
туплеты намного элегантнее

ujeenator
20.10.2018
22:36:14

Andrey
20.10.2018
22:36:14

Анатолий
20.10.2018
22:36:22

Andrey
20.10.2018
22:36:29

ujeenator
20.10.2018
22:36:55
Не надо запихивать это в if ни то и не другое

Andrey
20.10.2018
22:37:12
В остальных случаях надо возвращать структуры.

ujeenator
20.10.2018
22:37:40
Потому что читабельность такого выражение в if плохая

Andrey
20.10.2018
22:37:51
Пишу "по пачке в день" таких выражений.