Преобразование массива в строку в NodeJS

Я хочу преобразовать массив в строку в NodeJS.

var aa = new Array();
aa['a'] = 'aaa';
aa['b'] = 'bbb';

console.log(aa.toString());

Но это не работает.
Кто-нибудь знает, как конвертировать?

Ответ 1

Вы используете Array как "ассоциативный массив", которого нет в JavaScript. Вместо этого используйте Object ({}).

Если вы собираетесь продолжить с массивом, поймите, что toString() присоединится ко всем свойствам нумерованные, разделенным запятой. (так же, как .join(",")).

Свойства, подобные a и b, не будут использоваться с использованием этого метода, поскольку они не находятся в индексе число <. (т.е. "тело" массива)

В JavaScript Array наследует от Object, поэтому вы можете добавлять и удалять на нем свойства, как и любой другой объект. Таким образом, для массива нумерованные свойства (они являются технически просто строками под капотом) - это то, что учитывается в методах типа .toString(), .join() и т.д. Ваши другие свойства все еще существуют и очень доступны.:)

Прочтите документацию Mozilla для получения дополнительной информации о массивах.

var aa = [];

// these are now properties of the object, but not part of the "array body"
aa.a = "A";
aa.b = "B";

// these are part of the array body/contents
aa[0] = "foo";
aa[1] = "bar";

aa.toString(); // most browsers will say "foo,bar" -- the same as .join(",")

Ответ 2

toString - это метод, поэтому вы должны добавить скобки (), чтобы вызвать вызов функции.

> a = [1,2,3]
[ 1, 2, 3 ]
> a.toString()
'1,2,3'

Кроме того, если вы хотите использовать строки как ключи, вам следует использовать Object вместо Array и использовать JSON.stringify для возврата строки.

> var aa = {}
> aa['a'] = 'aaa'
> JSON.stringify(aa)
'{"a":"aaa","b":"bbb"}'

Ответ 3

toString - это функция, а не свойство. Вам понадобится следующее:

console.log(aa.toString());

В качестве альтернативы используйте join для указания разделителя (toString() === join (','))

console.log(aa.join(' and '));

Ответ 4

В node вы можете просто сказать

console.log(aa)

и он будет отформатировать его так, как должен.

Если вам нужно использовать результирующую строку, вы должны использовать

JSON.stringify(aa)