创建新原型以搜索任何数组并返回字符串



需要遍历存储在变量中的单词数组。我创建了一个Array.prototype.findWord,这样我就可以在我的程序中的任何数组中搜索任何单词。

我让我的findWord(str,arr(将字符串和数组作为参数。然后我循环遍历了传递的数组。如果传递的字符串与数组中的字符串匹配,它将记录该字符串。

Array.prototype.findWord = function(str, arr) {
  //   let returnWord = "";
  str = "";
  arr = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === str) {
      return str;
    }
  }

这将传递未定义。

如果我正确理解您的问题,您希望返回数组中的第一个匹配项。 由于您正在创建原型方法,因此不需要将数组作为参数传递。原型方法是在类的实例上调用的,在本例中为数组。 因此,您将像这样调用该方法:

['lorem', 'ipsum', 'dolor'].findWord('ipsum');

原型方法将需要重写引用this而不是传递arr

Array.prototype.findWord = function(str) {
  for (let i = 0; i < this.length; i++) {
    // if they match
    if (this[i] === str) {
      return str;
    }
  }
}

希望这有帮助。

请阅读 JavaScript:在决定扩展 Array 原型之前,扩展 Array.prototype 有什么危险?

如果您决定无论如何扩展它,您可以将其称为myArray.findWords('word')

数组本身现在是函数的this。希望有帮助

Array.prototype.findWord = function(str) {
  for (let i = 0; i < this.length; i++) {
    if (this[i] === str) {
      return str
    }
  }
}
let myArray = ['one', 'two', 'three']
myArray.find('one')
myArray.find('x')

最新更新