是否可以使用扩展运算符拆分具有空格的字符串?

而不是.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);


以上是是否可以使用扩展运算符拆分具有空格的字符串?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>