Подтвердить что ты не робот

Как присоединить ассоциативный массив в строку

Я пытаюсь сделать это сейчас, и мне интересно, есть ли "самый используемый" метод для объединения ассоциативного массива (его значения) в строку, ограниченную символом.

Например, у меня есть

var AssocArray = { id:0, status:false, text:'apple' };

Строка, полученная в результате объединения элементов этого объекта, будет

"0, false, 'apple'" or "0, 0, 'apple'"

если мы присоединяем их к символу "," Есть идеи? Спасибо!

4b9b3361

Ответ 1

Просто проведите по массиву. Любой массив в JavaScript имеет индексы, даже ассоциативные массивы:

    var AssocArray = { id:0, status:false, text:'apple' };
    var s = "";
    for (var i in AssocArray) {
       s += AssocArray[i] + ", ";
    }
    document.write(s.substring(0, s.length-2));

Выведет: 0, false, apple

Ответ 2

Object.keys(AssocArray).map(function(x){return AssocArray[x];}).join(',');

PS: есть метод Object.values где-то, но это не стандарт. Существуют также внешние библиотеки, такие как hashish.

Ответ 3

Реализация функций типа Object.map, Object.forEach и т.д. все еще обсуждается. На данный момент вы можете использовать что-то вроде этого:

function objectJoin(obj, sep) {
    var arr = [], p, i = 0;
    for (p in obj)
        arr[i++] = obj[p];
    return arr.join(sep);
}

Изменить: использование временного массива и объединение его вместо конкатенации строк для повышения производительности.

Изменить 2: кажется, что arr.push(obj[p]); вместо увеличения счетчика может быть быстрее в большинстве последних браузеров. См. Комментарии.