我对Array.map
函数的行为感到有点困惑:
var arr = ['one', 'two', 'three'];
var result = '';
result += arr.map(function(elm) {
return elm;
});
// 'one,two,three'
如何使用,
自动加入返回的结果?
注意:只有在将字符串中的返回结果连接起来时才会发生这种情况。
答案 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)