JavaScript зациклить массив - ReferenceError | я не определен - PullRequest
0 голосов
/ 17 ноября 2018

новичок в JavaScript и Почтальон здесь.

Я установил базовый тест в почтальоне, используя JS для сравнения имен в веб-ответе с именами в файле данных. Массив имен находится во внешнем файле данных CSV.

Я хочу перебрать массив, но получаю ошибку:

"ReferenceError | i is not defined"

Код:

var newResponse = responseBody;

let nameArray = data.name;

for (let i = 0; i < nameArray.length; i++) {
  console.log(nameArray.length);
}

pm.test("Web vs. Data: Person", function() {
  pm.expect(newResponse.Item[i].name).to.equal(nameArray.Item[i].person);
});

console.log(newResponse.Item[i].name);
console.log(nameArray.Item[i].person);

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Ваш конечный символ "}" отсутствует, измените его с помощью этого кода;

var newResponse = responseBody;

let nameArray = data.name;

for (let i = 0; i < nameArray.length; i++) {

    console.log(nameArray.length);

    pm.test("Web vs. Data: Person", function () {
        pm.expect(newResponse.Item[i].name).to.equal(nameArray.Item[i].person);

    });

    console.log(newResponse.Item[i].name);
    console.log(nameArray.Item[i].person);
}
0 голосов
/ 17 ноября 2018

let имеет ограниченную область, поэтому ReferenceError выходит из цикла for.Переменная i не будет указываться вне цикла for.Поэтому вы должны переместить свой кодовый блок внутри цикла for, как показано ниже.Надеюсь, это поможет:)

var newResponse = responseBody;
let nameArray = data.name;

for(let i = 0; i < nameArray.length; i++){
  console.log(nameArray.length);
  pm.test("Web vs. Data: Person" ,function(){
  pm.expect(newResponse.Item[i].name).to.equal(nameArray.Item[i].person);
  });

  console.log (newResponse.Item[i].name);
  console.log(nameArray.Item[i].person); 
}
...