JavaScript中的字符串具有length属性,例如数组,但是它们没有诸如forEach或reduce的方法。
是不是意味着字符串像对象一样是数组?
答案 0 :(得分:2)
术语“类似数组”通常是指具有整数值.length
属性以及相应地存储在整数键属性中的许多元素的对象,因此我们可以像数组一样通过索引访问它们。字符串肯定满足了这一要求。
否,字符串并不具有数组具有的所有方法。它们不是从Array.prototype
继承的,它们不是真正的数组-它们只是类似于的数组。但是,您可以通过….split('')
或Array.from(…)
来简单地将字符串转换为数组。
答案 1 :(得分:1)
根据文档,这些功能不存在(Documentation)。
但是您可以向String
原型添加功能
// forEach function
String.prototype.forEach = function (f) {
for (i=0; i < this.length; ++i) {
f(this[i]);
}
}
// reduce function
String.prototype.reduce = function (f, start) {
result = (start == undefined) ? null : start
for(i = 0; i < this.length; ++i) {
result += f(this[i])
}
return result
}