簡體   English   中英

JavaScript循環數組-ReferenceError | 我沒有定義

[英]JavaScript loop an array - ReferenceError | i is not defined

JavaScript和Postman的新手。

我已經使用JS在郵遞員中設置了一個基本測試,以將Web響應中的名稱與數據文件中的名稱進行比較。 名稱數組位於外部數據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);

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); 
}

您的最終范圍“}”字符缺失,請更改此代碼;

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM