是否可以使用扩展运算符拆分具有空格的字符串?
而不是.split(" ")对这个字符串使用展开运算符:The quick brown fox jumped over the lazy dog。
回答
您可以通过String.prototype[Symbol.iterator]像这样覆盖来做到这一点,但覆盖 JavaScript 的本机对象并不是一个好习惯:
String.prototype[Symbol.iterator] = function* () {
const split = this.split(' ');
for(const word of split) {
yield word;
}
}
const result = [...'The quick brown fox jumped over the lazy dog.'];
console.log(result);
最短的变体(感谢@georg):
String.prototype[Symbol.iterator] = function* () {
yield* this.split(' ');
}
const result = [...'The quick brown fox jumped over the lazy dog.'];
console.log(result);
其他仅从Array.prototype.values以下位置返回迭代器的变体:
String.prototype[Symbol.iterator] = function () {
return this.split(' ').values();
}
const result = [...'The quick brown fox jumped over the lazy dog.'];
console.log(result);