Я хочу преобразовать массив в строку в NodeJS.
var aa = new Array();
aa['a'] = 'aaa';
aa['b'] = 'bbb';
console.log(aa.toString());
Но это не работает.
Кто-нибудь знает, как конвертировать?
Я хочу преобразовать массив в строку в NodeJS.
var aa = new Array();
aa['a'] = 'aaa';
aa['b'] = 'bbb';
console.log(aa.toString());
Но это не работает.
Кто-нибудь знает, как конвертировать?
Вы используете 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(",")
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"}'
toString - это функция, а не свойство. Вам понадобится следующее:
console.log(aa.toString());
В качестве альтернативы используйте join для указания разделителя (toString() === join (','))
console.log(aa.join(' and '));
В node вы можете просто сказать
console.log(aa)
и он будет отформатировать его так, как должен.
Если вам нужно использовать результирующую строку, вы должны использовать
JSON.stringify(aa)