ЙажаСценарий / Говнокод #25217 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
const arr = [['govno',  'shit'], ['kod', 'code']]
//we expect it to be {'govno': 'shit', 'kod' :  'code'}

//unsupported(yet)
Object.fromEntries = arr => 
    Object.assign({}, ...Array.from(arr, ([k, v]) => ({[k]: v}) ));
const res1 = Object.fromEntries(arr)

const res2 = arr.reduce((res, [key, value]) => Object.defineProperty(res, key, {'value': value, 'enumerable': true}), {})

const res3 = {}
arr.forEach(([key, value]) => res3[key] = value)

А как превратить массив пар ключ-значение в ассоциативный на Вашем языке?

Запостил: bootcamp_dropout bootcamp_dropout, (Updated )

Комментарии (113) RSS

  • const res = JSON.parse('{' + arr.map(xs=>xs.map(JSON.stringify).join(':')).join(',') + '}')
    Ответить
    • вот это ты питух. давай еще раз парс и стрингифай, чтобы наверняка.
      Ответить
      • Ага. А потом эти люди ждут, что кто-то сделает ещё более быструю версию V8, чтобы можно было сериализовывать и десериализовывать на каждый чих.
        Ответить
        • Вот кстати, композицию (JSON.parse . JSON.stringify . JSON.parse) можно спокойно заменить на одно JSON.parse, это простое математическое тождество.
          Подобная питушня вида x == true ? true : false легко выкомпиливается.

          В случае той же сишки такую простую питушню человек перестаёт писать после достижения определённой стадии образованности, и оптимизатору нужно работать с менее тривиальным кодом, примеры для начинающих компилятор уже должен щёлкать как орешки.
          Ответить
          • > легко выкомпиливается
            Для этого нужно всего лишь формально доказать что читать далее.

            К слову, ни parse(stringify()) ни stringify(parse()) нельзя выбросить.
            Ответить
            • > К слову, ни parse(stringify()) ни stringify(parse()) нельзя выбросить.
              Точно. Именно поэтому я за композицию из трёх питушень.

              Кстати, x ? true : false в JS/python ведь тоже нельзя выбросить 🙂
              Ответить
                • Неужели нет каких-нибудь странных объектов, для которых это не эквивалентно?
                  Ответить
                  • Я бы сказал, что нет таких странных объектов. Все они остались в C++ (перегрузка операторов) и SQL (троичная логика).
                    Проверка на бульность не трогает внутренности объекта. Даже если его valueOf/toSring бросает исключение, ничего не будет.
                    Ответить
                        • Ты о nullable полях говоришь вероятно?

                          NULL, TRUE, FALSE?

                          Вообще старые субдшники за такое дело могут и в зуб дать. Не тебе конечно, а тому кто такую архитектуру придумал
                          Ответить
                          • Где-то в инструкции по "MySQL" был даже совет избегать нуляблей, потому что они снижают пирфоманс. Ну то есть хранить лучше NOT NULL, а действительность/недействительность значения выводить где-то на клиенте СУБД.
                            Ответить
                            • Ну уж для BOOL точно лучше быть NOT NULL 🙂
                              Ответить
      • Скучно. Лучше так:
        const res = eval('({' + String(arr.map(xs=>xs.map(JSON.stringify).join(':'))) + '})')


        Ещё можно переписать рекурсивно, с конкатенацией и join через свёртку, которую тоже рекурсивно написать. Может, потом ещё через транслятор в JSFUCK прогнать.
        Ответить
        • eval считается опасной функцией. Именно поэтому я за "JSON.parse".

          А вообще можно сделать JSONP:
          eval('Peetooh({' + String(arr.map(xs=>xs.map(JSON.stringify).join(':'))) + '})');

          Где функция Peetooh, записывающая значение своего аргумента в какую-нибудь переменную, должна быть заранее определена.
          Ответить
            • Если провести синтаксический анализ и доказать, что код не вызывает ничего, кроме пользовательской функции (в нашем случае Peetooh), то не считается. Для этого нужно всего лишь формально доказать что читать далее.

              А доказывать мы, конечно же, ничего не будем, потому что мы тут все программисты, а не математики.
              Ответить
                • Наш сервер возвращает только проверенный JSONP, поэтому Вы можете нам доверять. А ещё мы используем SSL, поэтому всё надёжно. Видите зелёный замочек в браузере?
                  Ответить
          • > eval считается опасной функцией
            На самом деле, я слошарил и ничего интересного в eval не передал. Там фактически будет сджойненная строка с жсонами пар. Надо так:
            eval('({' + String(arr.map(([k,v])=>'"'+k+'":"'+v+'"')) + '})')
            Ответить
            • Но зачем нам вообще обрабатывать массив в параметрах eval если есть регулярки?
              eval(''.concat('({',String(arr).replace(/(\w+)(\,)(\w+)/gm, '"$1":"$3"'), '})'))
              Ответить
  • коко
    val pairs = arrayOf(Pair("name", "joe"), Pair("last_name", "pupkin"))
    val map = pairs.map {it.first to it.second}.toMap()    
    print(map["name"]) // joe


    Пипи
    pairs = [("name", "ivan"), ("last_name", "pupkin")]
    map = dict(pairs)
    print(map["name"]) # Ivan


    ruru
    paris = [[:name, "John"], [:last_name, "Sidorov"]]
    map = paris.to_h 
    p map[:name] # John
    "John"


    Кто соснул?
    JS сосунул!
    Кто соснул?
    JS сосунул!
    Кто соснул?
    JS сосунул!

    >>JSON
    буэ
    Ответить
    • PHP 5.5+:
      <?php $pairs = [['govno',  'shit'], ['kod', 'code']];
      
      $map = array_combine(array_column($pairs, 0), array_column($pairs, 1));
      
      var_dump($map);

      Именно поэтому.
      Ответить
      • Пепе

        $array_ref = [['govno',  'shit'], ['kod', 'code']];
        %hash = map {@$_} @$array_ref;
        print $hash{kod};
        Ответить
        • PHP < 5.5:
          <?php $pairs = array(array('govno',  'shit'), array('kod', 'code'));
          
          array_walk($pairs, function($value, $key) use(&$map){$map[$value[0]] = $value[1];});
          
          var_dump($map);
          Ответить
          • Ну или как в предыдущем коде, только доопределить функцию array_column:
            function array_column($array, $column) {
                return array_map(function($data) use($column) {return $data[$column];}, $array);
            }
            Ответить
            • В жопу ваше функциоальное
              local paris = {{"name", "jesus"}, {"last_name", "christos"}}
              local map = {}
              for _, rec in ipairs(paris) do
                map[rec[1]] = rec[2]
              end
              
              print(map["name"])


              Торт, помогай!!
              Ответить
              • ахаха
                вот это смешно, почти няшно луашно, с метатататататтабла
                local function add_new(tab, _, rec)  
                  rawset(tab, rec[1], rec[2])
                end
                
                local recordz = {}
                setmetatable(recordz, {__newindex = add_new})
                
                recordz[#recordz] =  {"name", "Smirre"} --добавь еще
                
                print(recordz["name"]) -- Smirre
                Ответить
                • Вот это действительно по-луашному!
                  Ответить
                • Перевёл на "PHP", проверь:
                  <?php class NyaArray extends ArrayIterator {
                     public function offsetSet($offset, $value) {
                          if (is_null($offset)) {
                              $offset = $value[0];
                              $value = $value[1];
                          }
                          parent::offsetSet($offset, $value);
                      }
                  }
                  
                  $recordz = new NyaArray();
                  
                  $recordz[] = ['govno',  'shit'];
                  $recordz[] = ['kod', 'code'];
                  
                  var_dump((array)$recordz);
                  Ответить
                  • ой блядь, я сейчас раззадорюсь и тоже начну хуячить классы с переопределенным оператором на C#, на Kotlin, на C++...
                    Ответить
                    • Давай!

                      Можно ещё переопределить конструктор, чтобы можно было писа́ть что-то типа:
                      $recordz = new NyaArray('govno', 'shit', 'kod', 'code');

                      Или вообще сделать закос под перловский qw...
                      Ответить
                      • В смысле вараргом?)

                        У меня нет седьмого сисярпа, так что туплов мне не завезли пока, буду по старинке
                        var pairs = new string[][] {new string[] {"name", "me"}, new string[] {"age", "99"}};
                                    var map = pairs.ToDictionary(r => r[0], r => r[1]);
                                    Console.Write(map["name"]);


                        Замечу кстати, что LINQ с лмбдм появился в C# когда в Java еще даже о стримах и не слыхивали. А вывода типов там и чичас нет.

                        С перегрузкой попоратора фигачить лянтно ибо:
                        1) надо или сахар для делегирования
                        2) или наследовать коллекцию

                        Сделаю как на кокотлине, там сухер есть
                        Ответить
                        • class LolList(vararg pairs: Pair<String, String>) : MutableMap<String, String> by mutableMapOf() {
                              constructor(vararg values: String) : this(*values.toList().zipWithNext().toTypedArray())
                          //не оптимальненько
                          
                              init {
                                  pairs.forEach(::plus)
                              }
                          
                              operator fun plus(value: Array<Pair<String, String>>) {
                                  this += value.toList()
                              }
                          
                              operator fun plus(value: Iterable<Pair<String, String>>) {
                                  value.forEach(::plus)
                              }
                          
                              operator fun plus(value: Pair<String, String>) {
                                  this[value.first] = value.second
                              }
                          
                          
                          }
                          
                          
                          fun main(args: Array<String>) {
                              val lolList = LolList("Soset", "JS", "Nesoset", "koko")
                              lolList += arrayOf(Pair("Name", "Suslik"), Pair("LastName", "Soslik"))
                              lolList += Pair("Age", "03")
                              println(lolList["Name"])
                              println(lolList["Age"])
                              println(lolList["Soset"])
                          }


                          Выглядит как лист, хрюкает как лист, а все равно мапа

                          Как видите, в коко тоже можно выебываца как в плюсплюс и пепе и даже навернуть говна тоже можно, потому что это конечно не настоящий List, а реализовывать List (даже пусть и не мутабл) мне ленива потому что адаптеров нет
                          Ответить
                • Перевёл на "PHP", проверь:
                  <?php class NyaArray extends ArrayIterator {
                     public function offsetSet($offset, $value) {
                          if (is_null($offset)) {
                              $offset = $value[0];
                              $value = $value[1];
                          }
                          parent::offsetSet($offset, $value);
                      }
                  }
                  
                  $recordz = new NyaArray();
                  
                  $recordz[] = ['govno',  'shit'];
                  $recordz[] = ['kod', 'code'];
                  
                  var_dump((array)$recordz);
                  Ответить
        • Не совсем понятно зачем тут ононимный моссив с референсом, когда можно массив обычный.
          Алсо, не забываем my, чтобы не прослыть неряхами
          #!/usr/bin/perl -w
          use strict;
          
          my @pairs = (["name", "govnko"], ["last_name", "mitich"]);
          my %map = map{@$_} @pairs;
          print $map{'name'};


          Забавно кстати что превращение массива из двух элементов в хеш раскладывает их в ключ и значнеие (map{@$_}).

          Тоже самое случается и в Ruby (to_h) и в Pythin (dict([..])), причем там массив пар поддерживается аутофбокс (а в перле надо кастить каждую пару)

          Волшебства из приведенных выше япов нету только в пыхе и котлине, ну и само собой в жопаскрипте
          Что какбы намекает
          Ответить
          • Да, в Пепе хэш вообще представляется идентично плоскому списку ключей вперемежку со значениями. Кот в блоке мап разыменовывает ссылки на моссивы-пары, и возвращаемые списки-пары кокотенируются. Результат равносилен %map = qw/name govnko last_name mitich/.
            Ответить
            • Я сигда юзал такой литерал
              my %h = ("name" => "pupkin", "age" => 94);
               print $h{'name'};


              но ты прав: можа и так
              my %h = ("name" , "pupkin", "age" , 94);
              # ну или
              my %h = qw(name pupkin age 94);



              какой все таки могучий ЯП
              школоте не понять
              Ответить
              • К тому же "жирная запятая" (=>) позволяла указывать ключи без кавычек. 😉 Кстати, из хэше-списочного дуализма вытекало:
                my %atoi = (one => 1, two => 2);
                my %itoa = reverse %atoi;
                print $itoa{1};

                Однако для меня радость от фич, позволявших "выражаться" богаче, со временем сменилась отторжением, поскольку конца и края нюансам видно не было. Не знаю, сколько знаний требуется, чтобы не сомневаться в своей интерпретации очередного куска кода. Спецификация Perl5 (если б существовала) потягалась бы с каким-нибудь C++25, я думаю.
                Ответить
                • >>reverse для хеш
                  страшно подумать что случится с (one => 1, ein => 1, two => 2, zwei => 2)
                  ;)))

                  Мне нравится руби: это мощность перла плюс ООПшный синтаксис (где надо) и меньшее кол-во операторов

                  Жаль, что руби уже всё
                  Ответить
                  • > страшно подумать что случится
                    wow such random so timtowtdi
                    my %kubik = (1=>1, 2=>1, 3=>1, 4=>1, 5=>1, 6=>1);
                    my %kibuk = reverse %kubik;
                    print values %kibuk;
                    Ответить
                    • my %h = map{$_ => 1} (1..5);
                      my @a = keys %h;
                      print $a[0]; # рэндом здорового перловика
                      Ответить
                      • Отличный тамада рэндом и свойства интересные. Для кубика я наблюдал, что при "бросках" в цикле j-ая грань выпадала с частотой m_j / ∑m_j при целых m_j ≥ 0 и ∑m_j = 16. Для твоего ∑ = 8.
                        Ответить
                  • >> Жаль, что руби уже всё

                    Как всё?

                    Ruby 2.6.0-rc2 Released

                    We are pleased to announce the release of Ruby 2.6.0-rc2.

                    Continue Reading...

                    Posted by naruse on 15 Dec 2018

                    На завтра запланирован официальный выпуск Ruby 2.6 (уже не RC). Мацумото — ёбаный сектант, поэтому запланировал выпуск на католическое Рождество.

                    А на 2038-й год запланировали Ruby 3.0:
                    https://bugs.ruby-lang.org/versions/5
                    Ответить
                    • А 22 декабря 2017 года вышел новый TCL.

                      Ну ты же понимаешь, о чем я?:)
                      Ответить
                      • К сожалению, не обладаю женской интуицией.
                        Ответить
            • Какой map?! О чем вы?!
              my %map = qw(Name Joe LastName Cocker);
              print $map{'Name'};
              
              # Or 
              
              my %map = (("Name", "Ivan"), ("NickName", "The Terrible"));
              print $map{'NickName'};


              Списки смердживаются, при присвоении к хешу превращаются в ключ-значение

              >There really isn't any such thing as a hash literal in Perl, but if you assign an ordinary list to a hash, each pair of values in the list will be taken to indicate one key/value association
              Ответить
              • Список для присваивания хэшу ведь надо было получить из массива пар. А оба твоих списка одинаково плоские (второй структурирован разве что визуально, и к AoA отношения не имеет).
                Ответить
                • именно массив?
                  А списковые лиреталы не подходят?

                  ах...
                  Ответить
                  • >ах
                    куд кудах.

                    Задача была преобразовать массивы пар.

                    То, что ты тут изобразил это конструкция языка "лист скаляров" которая может заполнять массивы (@) и хеши (%).

                    Причем для перла сама задача смысле не имеет потому что в массиве в перле могут лежать только скаляры!

                    Но в него можно покласть референс на массив.

                    Вот тут в массиве лежат референсы на анониманые массивы
                    $array_ref = [['govno', 'shit'], ['kod', 'code']];

                    В мапе $_ это реф на аннимный массив, а @ его дереференсит как массив

                    пушто

                    [] это синтаксис создания анонимного массива и вертания на него ссылки
                    {} -- синтаксис созидания ононимного хеша и вертания на него ссылки

                    а () что ("foo", 32) что ("foo" => 42) (стрелка -- синоним запятой) это литерал для создания массива (если lvalue с собачкой) или хеша (если оно с процентом) или вообще вертания последнего элемемента если там скаляр (ну или заполнение нескольких скаляров если их там тоже лист)



                    Знакотки пилять
                    Ответить
                        • Угу, всего-то тридцать лет и три года назад.
                          Ответить
      • ты чотли не заеншь что лдюи птувют бкувы?
        Ответить
        • Кмер чо за деталь перди кит говно ввода. Змея ему пуховиком.
          Ответить
  • Перевёл на «C++»:
    #include <iostream>
     
    #include <vector>
    #include <map>
    #include <string>
     
     
    int main()
    {
        using namespace std;
    
        vector<pair<string, string>> pairs = { {"govno",  "shit"}, {"kod", "code"} };
        map<string, string> res { pairs.begin(), pairs.end() };
     
        for (auto && mapPair : res) {
            cout << mapPair.first << ": " << mapPair.second << endl;
        }
     
        return EXIT_SUCCESS;
    }

    https://ideone.com/INzFOb
    Ответить
    • Обратите внимание на строки 11 и 12: в «JavaScript» можно не писать «;», а в «C++» — даже «=»! Именно поэтому я за «C++».
      Ответить
        • И я. Лишь бы только не добавляли мерзкого способа с designated initializers как в C99, а то запутаемся.
          Pos p = { .row = 1, .col = 3 };  // FUUU
          Ответить
            • Похоже, что так:
              Note: out-of-order designated initialization, nested designated initialization, mixing of designated initializers and regular initializers, and designated initialization of arrays are all supported in the C programming language, but are not allowed in C++.
              struct A { int x, y; };
              struct B { struct A a; };
              struct A a = {.y = 1, .x = 2}; // valid C, invalid C++ (out of order)
              int arr[3] = {[1] = 5};        // valid C, invalid C++ (array)
              struct B b = {.a.x = 0};       // valid C, invalid C++ (nested)
              struct A a = {.x = 1, 2};      // valid C, invalid C++ (mixed)

              Странно, что в сишке это реализовали, а в C++ всё ещё думают. Там могут возникнуть какие-нибудь сложности из-за особенностей языка?
              Ответить
    • Где тут происходит преобразование массива пар ключ-значение в ассоциативный?
      Ответить
      • Он преобразовываает за щекой, а в исходнике всегда пишет преобразованный вореант.
        Ответить
        • Тяжёлая у него работа. А если придёт массив на триста тысяч записей?
          Ответить
        • Напомнило изречение одного препода (он читал информатику для студентов непрограммистских специальностей): «Не понимаю, зачем в ЯП нужна функция чтения файлов, ведь входные данные всегда можно записать в const и перекомпилировать программу».
          Ответить
          • Кстати, такой вопрос:
            Вот говорят, что машина Тьюринга и лямбда-исчисление эквивалентны для вычислений. А что с императивными программами? Как теория формализует ввод для программы?

            Допустим, программа под машину Тьюринга реализует чат-бота и общается с пользователем. В этом случае часть ввода пользователя будет зависеть от вывода чат-бота.
            Представим такую же программу под лямбда-исчисление. Здесь запускаемая функция
            * либо требует сразу весь ввод, и пользователь вынужден у себя просчитывать ходы чат-бота,
            * либо возвращает кортеж из фразы и функцию для следующего вызова,
            * какое-то монадическое значение или текст программы на C - для последующего запуска.
            Всё это выглядит чем-то неспортивным.
            Ответить
            • А как машина Тьюринга общается с пользователем? Там та же самая фигня - дописал на ленту ответ, ребутнул машину.
              Ответить
              • Именно поэтому я за "PHP": он ребутится после каждого запроса.
                Ответить
                  • Вообще нет: программа на "PHP" может общаться с внешним миром: читать файлы, делать запросы к другим серверам и т. п.
                    Ответить
                    • > читать файлы
                      Файлы лежат на ленте...

                      > запросы к другим серверам
                      А тут согласен.
                      Ответить
              • С точки зрения МТ весь мир это лента.

                Да собственно с точки зреня обычного комптьютера тоже: в елнту можно MOV
                Ответить
              • У меня просто МТ ассоциировалась с Brainfuck, где можно делать ввод зависимым от вывода.
                Вообще, физически можно любой кусок ленты переписать/перечитать в любое время, пока машина на него не наехала.
                Ответить
                • Ну а в лямбда-машину ты можешь передать функцию, которая ждёт ответа от юзера и возвращает разный результат в зависимости от него...
                  Ответить
                  • Как мой вариант "кортеж из фразы и функцию для следующего вызова"? Это да, только выглядит менее честно.

                    Хотя, теперь мне вмешательство в ленту тоже уже начинает казаться нечестным.
                    Ответить
            • Запись на ленту во время работы машины и возникающие при этом гонки, емнип, никот не рассматривает.
              Ответить
            • Это не пары, это элементы ассоциативного массива.
              Ответить
              • элементы, их 2, они являются парой. каждая пара отделена от другой пары запятой

                "there is no spoon" (тм)
                Ответить
            • Это не пары. Кого ты пытаешься наипать? Тут все программисты!
              Ответить
    • The => operator is just a synonym for a comma,

      они просто перла не знают
      Ответить
      • use Data::Dumper;
        
        my $pituh = [1 => 2 => 3 => 4 => 5];
        print Dumper(\$pituh);
        
        my %kurochka = (1 => 2 => 3 => 4 => 5);
        print Dumper(\%kurochka);

        Выводит:
        $VAR1 = \[
                    1,
                    2,
                    3,
                    4,
                    5
                  ];
        $VAR1 = {
                  '3' => 4,
                  '1' => 2,
                  '5' => undef
                };

        Прикольно.
        Ответить
        • use Data::Dumper;
          
          my @peaceda = [1 => 2 => 3 => 4 => 5];
          print Dumper(\@peaceda);
          
          my @ggurda = (1 => 2 => 3 => 4 => 5);
          print Dumper(\@ggurda);

          Выводит:
          $VAR1 = [
                    [
                      1,
                      2,
                      3,
                      4,
                      5
                    ]
                  ];
          $VAR1 = [
                    1,
                    2,
                    3,
                    4,
                    5
                  ];
          Ответить
          • В Перле любые закорючки во что-нибудь сконпелируются, в отличие от других языков.
            Ответить
            • смешно что <= это "less or eq" для чисел
              => это запаятая
              а <=> это компаратор который вертает -1, 0, 1 в зависмости от

              я хз какие у них приоритеты но будет форшмак в любом случае
              Ответить
              • Подсмотрел, что приоритеты убывают так: <=, <=>, =>.

                И что сравнения не ассоциативны, поэтому цепочка <= (без добавления круглых скобок) не сконпелируется, то бишь -0.5 <= 0.0 <= 0.5 не подразумевает ни Си-шного 1 <= 0.5, ни Перл6-ового -0.5 <= 0.0 && 0.0 <= 0.5.
                Ответить
                • как там бабочка шестого перла?
                  ворочаеца?

                  чото я вас наслушался, захоетлось перечитать книги с верблюдом и пантерой и попписять на пятом перле

                  надеюсь, к вечеру пройдет
                  Ответить
                  • в шестерку принесли фоформальные папараметры с указанием типа в сишкном ситле

                    sub fa(Int $foo)

                    интерфейсы (роли), классы

                    нгахуй все это в скри-скрип языке? буэ
                    Ответить
                    • Не поддавайтесь!

                      Признаюсь, сам не слежу ни за 6, ни за 5. Но совсем недавно у бабочки было обновление спецификации и реализации. Вот только от лозунга «Perl 6 is optimized for fun, short -Ofun» с их сайта веет обречённостью и печалью, кмк.
                      Ответить
                      • фофан у нас уже руби есть:)

                        >>-Ofun
                        а, я понял. Perl это когда бородатый сишник решил развлечься. И пятый тоже:)
                        Ответить
            • Мне он возвращает то {'1' => -1, '-1' => 1}, то {'-1' => 1, '1' => -1}, в зависимости от положения звёзд на небе. Можно использовать вместо подбрасывания монетки.
              Ответить
              • потому что у тебя в хеш два раза кладется для одного и то ге ключа значение
                Ответить
                • Нет, там всё по одному разу, просто в Пепе ключи хэшей никак не упорядочены.
                  Ответить
                  • а, ну или так;)

                    надо сначала ``sort keys``
                    Ответить
          • >>@peaceda = [1 => 2 => 3 => 4 => 5];

            мне кажется так делать не нужно
            ты поклал в массив "писдата" один елемент -- референсу на анонмный массив "1,2,3,4,5"
            Ответить
  • Перевёл на «C»:
    int main()
    {
        struct HashMap *map = createHashMap(100);
        if (!map) {
            printf("Map creating failed\n");
            return EXIT_FAILURE;
        }
     
        const char *pairs[2][2] = { {"govno", "shit"}, {"kod", "code"} };
     
        for (unsigned int i = 0; i < 2; i++) {
            mapAddKeyValue(map, pairs[i][0], pairs[i][1]);
        }
     
        for (unsigned int i = 0; i < 2; i++) {
            printf("map[%s] = %s\n", pairs[i][0], mapGetValue(map, pairs[i][0]));
        }
     
        freeHashMap(map);
        return EXIT_SUCCESS;
    }

    Полный код доступен по ссылке: https://ideone.com/3v5Urq
    Ответить
  • * g o a t s e x * g o a t s e x * g o a t s e x *  
     g                                               g  
     o /     \             \            /    \       o  
     a|       |             \          |      |      a  
     t|       `.             |         |       :     t  
     s`        |             |        \|       |     s  
     e \       | /       /  \\\   --__ \\       :    e  
     x  \      \/   _--~~          ~--__| \     |    x  
     *   \      \_-~                    ~-_\    |    *  
     g    \_     \        _.--------.______\|   |    g  
     o      \     \______// _ ___ _ (_(__>  \   |    o  
     a       \   .  C ___)  ______ (_(____>  |  /    a  
     t       /\ |   C ____)/      \ (_____>  |_/     t  
     s      / /\|   C_____)       |  (___>   /  \    s  
     e     |   (   _C_____)\______/  // _/ /     \   e  
     x     |    \  |__   \\_________// (__/       |  x  
     *    | \    \____)   `----   --'             |  *  
     g    |  \_          ___\       /_          _/ | g  
     o   |              /    |     |  \            | o  
     a   |             |    /       \  \           | a  
     t   |          / /    |         |  \           |t  
     s   |         / /      \__/\___/    |          |s  
     e  |         / /        |    |       |         |e  
     x  |          |         |    |       |         |x  
     * g o a t s e x * g o a t s e x * g o a t s e x *
    Ответить
  • слушай ваня свои валенки
    "use strict";
    let obj = {};
    for(let q of [['govno',  'shit'], ['kod', 'code']]) {
       obj[q[0]] = q[1];
    }
    console.warn(obj);
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8