Как двум переменным за одно действие присвоить массив из двух элементов на JS? #777164


#0 by D_Pavel
Как двум переменным за одно действие присвоить массив из двух элементов на JavaScript? Есть массив: $myArray = [20, 30]; на перле можно было круто присвоить его переменным типа вот так: ($x, $y) = $myArray; в итоге $x == 20, $y==30 На JavaScript существует что-то подобное?
#1 by Fragster
а зачем?
#2 by Fragster
ладно бы спрашивал, как у объекта в js сделать недоступные извне свойства и т.п., но это-то зачем?
#3 by D_Pavel
Для программы нужно Для меня сложные вопросы на которые мало кто знает ответ спрашивать гораздо интереснее чем очевидные.
#4 by Fragster
var a = b = 10 работает
#5 by Fragster
но вообще фу так писать. технологической необходимости нет, а читается хуже
#6 by D_Pavel
Это ты точно подметил! А на мой вопрос кто-нибудь ответит?
#7 by Fragster
в пятницу совсем туго? см.
#8 by Garykom
он разные значения хочет присвоить которые через зпт как для массива
#9 by Fragster
а, разглядел. все равно не понимаю. все равно не понимаю, зачем спрашивать то, что не предусмотрено синтаксисом? ну, можно свою функцию из 3 строк написать, у которой будет первый аргумент - массив, а дальше список переменных, в которые по индексу будут значения из массива складываться.
#10 by Рэйв
и все это тебе предоставляет оператор  = А ты ему даже спасибо не сказал.
#11 by Asmody
Ты не поверишь: [a, b]=[1, 2];
#12 by Asmody
+ там в конце статьи две очень важные таблички
#13 by Карупян
получается нода тоже не поддреживает, как и хром
#14 by Fragster
проверил в хроме - работает
#15 by Asmody
в ноде есть поддержка ES6
#16 by Garykom
нода она разных версий бываетТам столкнулся уже с совместимостью старого кода на новых нодах
#17 by Jija Grenkov
Babel есть для тех у кого не поддерживает es6
#18 by D_Pavel
Хоть один знающий человек зашел в тему. Спасибо!
#19 by D_Pavel
ЗЫ: В хроме работает не смотря на табличку. Темку можно закрыть.
#20 by D_Pavel
Подниму тему. Новый вопрос. Не пойму как тем же способом сделать такое присваивание: есть массив из пары элементов: arrPair = ['Яблоки', '100 рублей']; нужно добавить этот массив деструктурирующим присваиванием в хэш, чтобы получилось: hashPriceList['Яблоки'] = '100 рублей';
#21 by orefkov
hashPriceList[arrPair[0]] = arrPair[1]
#22 by Asmody
на ES6 (([a,b])=>({[a]:b}))(['Яблоки','100 руб'])
#23 by D_Pavel
Не то Круто, так получается новый объект {Яблоки: "100 руб"}, а мну нужно добавить к существующему хэшу. Дано: ['Яблоки', '100 рублей'] var hashPriceList = []; Получить: hashPriceList['Яблоки'] == '100 рублей'
#24 by Asmody
оберни еще в одну лямбду, делов-то! q={'qwe':1,'asd':2,'zxc':3}; w=['qwe',3]; (o=>(([a,b])=>(o[[a]]=b)))(q)(w); Но это какой-то write-only код. Как упражнение хорош, но реально так писать не надо.
#25 by Asmody
+ Ты уже завтра забудешь, сколько магии работает в третьей строке.
#26 by D_Pavel
Чотко! Спасибо, работает
#27 by orefkov
Горе от ума, имхо.
#28 by Serginio1
#29 by D_Pavel
Круто, спасибо! То что надо
#30 by Serginio1
Только это относится к ES6
#31 by Fragster
ты там экзамен сдаешь, или на работу устраиваешься? прав, и лучше написать прям хорошую и понятную функцию из одной строки без "деструктивного присваивания", ибо оно нафиг тут не нужно. Например как в . Все просто и понятно. И через год останется также просто и понятно.
#32 by Serginio1
Ну именованные кортежи даже в C# 7 появятся
#33 by Asmody
Ты опять всё проспал. Это ещё в и по-русски.
#34 by Asmody
Как там в питоне? "Явное лучше неявного, простое лучше сложного"?
#35 by Asmody
Вроде даже в 3м питоне выпилили деструктивное определение параметров функций.
#36 by Serginio1
Ну TC то его и не заметил. Не только я.
#37 by D_Pavel
В 11 какая-то старая русская версия. Более новая и по-английски как раз в
#38 by D_Pavel
смотри внимательнее
#39 by Serginio1
(33,38)Прошу прощения. Лениво всё читать. Ну хоть версия другая.
Тэги: Веб-мастеринг
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С