За последние 24 часа нас посетили 22980 программистов и 1233 робота. Сейчас ищут 832 программиста ...

Как вывести значения объекта в одну строку ?

Тема в разделе "JavaScript и AJAX", создана пользователем Khaybulla, 26 апр 2017.

  1. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Код (Javascript):
    1. var obj = {
    2.                     var1: "text1",
    3.                     var2: "text2",
    4.                     var3: "text3"
    5. };
    Как вывести значения в одну строк вот пример (text1text2text3) каким способом это можно реализовать ?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    В цикле перебрать объект и соединить строки
     
    Khaybulla и Deonis нравится это.
  3. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Есть еще один способ, но он не кроссбраузерный:
    Код (Javascript):
    1. console.log(Object.values(obj).join(' '));
     
    denis01 и Khaybulla нравится это.
  4. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Вот решение:
    Код (Javascript):
    1. for(var key in obj) {
    2.       document.write(obj[key]);
    3. }
     
    #4 Khaybulla, 26 апр 2017
    Последнее редактирование модератором: 26 апр 2017
  5. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Ещё вопрос как теперь значение которое выходит в document.write (text1text2text3) занести в переменную пример (var values = "text1text2text3") ?
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Потенциально багованое. На каждой итерации следует проверять через hasOwnProperty, что данный key принадлежит obj. Иначе можно залезть в свойства прототипа.
    --- Добавлено ---
    Выводить его не на экран, а сразу писать в переменную. Когда цикл отработает, на руках будет переменная с данными, которую уже, в свою очередь, можно будет выбросить на экран.
     
    Deonis и Khaybulla нравится это.
  7. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Код (Javascript):
    1. for(var key in obj) {
    2.       var values = obj[key];
    3. }
    Если так делать и потом выводить отображается только последнее значение text3...

    Код (Javascript):
    1. $("input[id=obj]").val(values);
    А если выводит в консоль то они появляются друг под другом не в строку

    text1
    text2
    text3
    --- Добавлено ---
    Такой способ идеально мне подходит... В каких браузерах он не работает ?
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Разумеется. Вы ведь не добавляете все к переменной, а перезаписываете ее раз за разом.
    Добавление делается иначе:
    Код (Javascript):
    1. var values = '';
    2. for (var key in obj) {
    3.     if (obj.hasOwnProperty(key)) {
    4.         values += obj[key];
    5.     }
    6. }
    И да, я добавил проверку на то, что ключ принадлежит непосредственно объекту.
    --- Добавлено ---
    .join() работает везде. А вот Object.values(), боюсь, поддерживается только последним хромом и лисой.
     
    denis01 и Khaybulla нравится это.
  9. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Спасибо! теперь все выводится как надо.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Круто :)
    Только скажите, вам точно понятно все, что происходит в этом коде? Если есть вопросы - не стесняйтесь.
     
    Khaybulla нравится это.
  11. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    Вы так объяснили что не понять невозможно ) Спасибо ещё раз ;)
     
    Fell-x27 нравится это.
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Ну и славненько.
     
    Khaybulla нравится это.