在NodeJS中将数组转换为字符串

时间:2012-01-18 08:22:26

标签: node.js

我想在NodeJS中将数组转换为字符串。

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

console.log(aa.toString());

但它不起作用。
任何人都知道如何转换?

5 个答案:

答案 0 :(得分:29)

您正在使用Array类似"关联数组",这在JavaScript中不存在。请改用Object{})。

如果您要继续使用数组,请注意toString()将所有编号属性加在一起,用逗号分隔。 (与.join(","))相同。

ab等属性不会使用此方法,因为它们不在数字索引中。 (即阵列的"主体")

在JavaScript中,Array继承自Object,因此您可以像添加任何其他对象一样在其上添加和删除属性。因此对于数组而言,编号属性(它们在技术上只是引擎盖下的字符串)在.toString().join()等方法中具有重要性。您的其他属性仍然存在且非常多无障碍。 :)

阅读Mozilla's documentation以获取有关阵列的更多信息。

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's body/contents
aa[0] = "foo";
aa[1] = "bar";

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

答案 1 :(得分:16)

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"}'

答案 2 :(得分:4)

toString是一个函数,而不是属性。你会想要这个:

console.log(aa.toString());

或者,使用join指定分隔符(toString()=== join(','))

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

答案 3 :(得分:1)

在节点中,您可以说

console.log(aa)

它会按原样格式化它。

如果您需要使用结果字符串,则应使用

JSON.stringify(aa)

答案 4 :(得分:0)

您还可以将数组强制转换为类似...的字符串。

newStr = String(aa);

我也同意Tor Valamo的回答,console.log应该对数组没有问题,除非您正在调试某些东西或只是出于好奇,否则无需转换为字符串。