我正在处理一个有关平铺数组的问题。我遇到了一些非常奇怪的事情,似乎在网上找不到答案。
为什么
[] + [1,2] = '1,2'
我似乎无法理解为什么将一个空数组添加到已存在元素的数组中会导致一个字符串,其内容为已存在元素的数组。
背后发生了什么导致这种情况出现?
以下是我的代码示例:
arr = [1, [2], [3, 4]];
arr.reduce(flatten, []); // [1, 2, 3, 4]
function flatten(a, b) {
return a.concat(b);
}
据我所了解,reduce将'[]'设置为“初始值”,因此对于原始数组中的每个元素,它都会将其与空数组连接起来,从而“展平”该数组。
[1,2].toString();
。 - Jared Smith