如何将两个数组的值传递给Javascript函数中的标识符?

我正在使用NodeJS npm-request库向API发出HTTPS GET请求。

我没有在每个HTTP GET请求中手动提供单独的名字和姓氏,而是尝试使用预定义的名称列表设置一个数组,该列表将循环显示并自动进行多个HTTP GET请求的过程但是,我遇到了一个障碍–我似乎无法弄清楚如何将值从我的firstNameArray和lastNameArray传递到askQuestion函数。

TL; DR如何在我的AskQuestion函数中的两个数组变量firstNameArray和lastNameArray中最好地引用和旋转'i'位置?

var firstNameArray = ["First","First1","First3"];
var lastNameArray = ["Last","Last2","Last3"];

function askQuestion (firstName,lastName) {
  var options = {
    method: 'GET',url: 'https://example.p.rapidapi.com/search/',qs: {first_name: **where firstNameArray[i] should go**,last_name: **where lastNameArray[i] should go**},headers: {
      'x-rapidapi-host': 'example.p.rapidapi.com','x-rapidapi-key': 'key'
    }
  };
  request(options,function (error,response,body) {
    if (error) throw new Error(error);

    console.log(body); // print result
  });
}
qinyong4004 回答:如何将两个数组的值传递给Javascript函数中的标识符?

您可能没有为此使用正确的数据结构。如果您有能力更改数据结构,则可以制作一个对象数组,以便在循环的每次迭代中都能获得正确的数据。

造成这种情况的原因有很多,但是您遇到了其中一个原因,这就是在您试图循环浏览信息时跟踪索引很痛苦。

function askQuestion(user) {
  makeThatRequest(user.firstName,user.lastName);
}

const users = [{ firstName: 'First 1',lastName: 'Last 1' } /*,...etc etc */ ];
users.forEach(askQuestion)

如果您必须使用该数据结构,我将通过翻译将其尽快转换为上述对象数组

const firstNames = ['First1','First2'];
const lastNames = ['Last1','Last2'];

const users = firstNames.map((firstName,index) => ({ firstName,lastName: lastNames[index] });

// do the rest of the examples from the above

或者,如果您不想对用户集进行两次传递,则可以...


const firstNames = ['First1','Last2'];

function askQuestion(firstName,lastName) {
   makeThatRequest(firstName,lastName)
}

for (let i = 0; i < firstNames.length; i++) {
  askQuestion(firstNames[i],lastNames[i]);
}

本文链接:https://www.f2er.com/3087759.html

大家都在问