Javascript array.map在串接成字符串时自动附加逗号?
我对Javascript array.map在串接成字符串时自动附加逗号?,javascript,arrays,string,Javascript,Arrays,String,我对Array.map函数的行为感到有点困惑: var arr = ['one', 'two', 'three']; var result = ''; result += arr.map(function(elm) { return elm; }); // 'one,two,three' 它如何自动将返回的结果与, 注意:只有将返回的结果串联成字符串时才会发生这种情况。逗号来自数组的toString()方法,而不是map()函数 var arr = ['one', 'two', 't
Array.map
函数的行为感到有点困惑:
var arr = ['one', 'two', 'three'];
var result = '';
result += arr.map(function(elm) {
return elm;
});
// 'one,two,three'
它如何自动将返回的结果与,
注意:只有将返回的结果串联成字符串时才会发生这种情况。逗号来自
数组的toString()
方法,而不是map()
函数
var arr = ['one', 'two', 'three'];
arr.toString(); // 'one,two,three'
var result = '';
result += arr.map(function(elm) {
return elm;
});
result.toString(); // 'one,two,three'
数组。map
对数组没有任何影响
你基本上做到了
'' + ['one', 'two', 'three']
它调用数组的toString()
方法,其默认行为是join(',')
数组
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()方法。
在JSFIDLE上检查上述代码:
对Array.map()的引用:。。。这是一个非常优雅的解决方案