您正在尝试使用字符串来分割而不是正则表达式:
更改.split("\\s+")
到.split(/\s+/g)
.
该typeof
操作将返回"object"
数组,因此您实际上看到的是一个包含单个项目的数组,这就是您的计数错误的原因.
如果要检查对象是否为数组,请使用Array.isArray
或兼容性:
function isArray(arr) { return Object.prototype.toString.call(arr) === '[object Array]'; }