如何通过函数参数传递对象?

时间:2017-09-13 05:40:03

标签: javascript jquery

我正在尝试通过一个在两个其他单词之间找到单词的函数传递对象。

我正试图通过:

  • sentences.para1.cat - to - findStringBetween( parameter1 , - , - )
  • sentences.para2 - to - findStringBetween( - , parameter2 , - )
  • sentences.para3 - to - findStringBetween( - , - , parameter3

控制台应记录:

  • 爱所有
  • 从未有过

sentences = {
  para1: [
    cat: [
      "I love all the cats",
      "I hate cats",
      "You never had a cat before"
    ],
    dog: [
      "We can get a dog"
    ]
  ],
  para2: [
    "I",
    "You",
    "We"
  ],
  para2: [
    "cat",
    "dog"
  ]
}

function findStringBetween(str, first, last) {
  var r = new RegExp(first + "(.*)" + last)
  ab = str.match(r)
  result = ab[1].trim()
  console.log(result)
}


findStringBetween(parameter1, parameter2, parameter3);
//parameter1 should pass all of sentences.para1.cat
//parameter2 should pass all of sentences.para2
//parameter3 should pass all of sentences.para3
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1 个答案:

答案 0 :(得分:1)

您的findStringBetween方法接受单个字符串,并且您希望将其用于多个字符串。您有两种选择:

  1. 在循环中使用您的方法为cat的每个成员调用它。

    for(let i=0; i< cat.length(); i++)
        Use cat[i]
    
  2. 您可以重构您的方法以接受数组而不是字符串。在这种情况下,您应该在方法中使用循环。