在字符串中连接时,array.map会自动附加逗号吗?

时间:2015-12-13 10:29:57

标签: javascript arrays string

我对Array.map函数的行为感到有点困惑:

var arr = ['one', 'two', 'three'];
var result = '';
result += arr.map(function(elm) {
    return elm;
});

// 'one,two,three'

如何使用,自动加入返回的结果?

注意:只有在将字符串中的返回结果连接起来时才会发生这种情况。

3 个答案:

答案 0 :(得分:11)

Array.map对您的阵列没有任何作用。

你基本上这样做了

'' + ['one', 'two', 'three']

调用数组的toString()方法,其默认行为是join(',')数组。

答案 1 :(得分:3)

var arr = ['one', 'two', 'three'];
var result = '';
var r = arr.map(function(elm) {
    result = result + ' ' + elm;
    return elm;
});
alert('r-> ' + r);
alert('result-> ' + result);

这是因为arr.map函数在处理数组中的每个元素后返回,而不是单个元素,因为您希望附加到'result'变量。如果您希望将值连接到'result'变量,则应该在map函数内为每个元素执行此操作。正如Sirko所说,逗号来自toString()方法。 在jsfiddle上查看上面的代码:http://jsfiddle.net/qt3nryLq/

引用Array.map():https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

答案 2 :(得分:2)

逗号源于toString()的{​​{1}}方法,而不是Array函数!

map()