2017-04-02 76 views
0

所以我有一個函數從它的參數中獲取一個對象數組。在這個例子中,數組內有4個對象。所述對象包含的鍵:For loop跳過重複值

{ reportedBy: String, reason: String} 

所以輸入數組是:

[{reportedBy: "58dd0c8c23ffea1bb767614f", reason: "User insulted me"}, {reportedBy: "58dd0c8c53faea1bb88379a", reason: "User insulted me"}, {reportedBy: "58dd0c8c23ffea1bb767614f", reason: "User violated against FAQs"}, {reportedBy: "58dd0c8c53fabb356fab", reason: "Uses a fake account"}] 

因此,在本例中,我有此對象的四倍在數組中。鍵可以有重複的值(如ID和原因),所以reportedBy字符串可以存在多次,只是不在一起reason字符串(這是因爲用戶可以爲每個原因報告一個項目一次)。我只是想獲得所有4個reportedByreason值。所以我使用了一個for循環:

for (var i = 0; i < object.length; i++) { 
    console.log(object[i].reason); 
    console.log(object[i].reportedBy); 
} 

object是該函數的參數幷包含4個對象。但問題是,這隻能讓我回到的所有值一次,並沒有重複。我只是不明白爲什麼,因爲這個工程:

console.log(object[0].reason); 
console.log(object[1].reason); 
console.log(object[2].reason); 
console.log(object[3].reason); 

我甚至試圖用一個for循環迭代從0到4,但我仍然沒有得到所有的4個值,只有3個是因爲兩個是一樣的。 for循環跳過重複值是否正常?

+1

哎,請給你的JavaScript有數組對象。 – Dhiraj

+0

很難從你提供的代碼中知道,你應該閱讀頁面[如何創建一個最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve),以獲得關於制定可回答問題的建議。 –

回答

1

它爲我工作。請參閱下面的片段以供參考。

請創建片段,如果它不會爲你工作。 for循環沒有問題。

它也適用於您提供的數組。

array=[{reportedBy: "58dd0c8c23ffea1bb767614f", reason: "User insulted me"}, {reportedBy: "58dd0c8c53faea1bb88379a", reason: "User insulted me"}, {reportedBy: "58dd0c8c23ffea1bb767614f", reason: "User violated against FAQs"}, {reportedBy: "58dd0c8c53fabb356fab", reason: "Uses a fake account"}]; 
 

 

 
for (var i = 0; i < array.length; i++) { 
 
    console.log(array[i].reason); 
 
    console.log(array[i].reportedBy); 
 
}

+0

我試着創建一個片段,你是對的,這給了我正確的結果...這真的很奇怪...這是我使用的相同的代碼,但我只是沒有得到值...每一個失蹤。編輯:Alllllright。我刪除了for循環,並複製你的看看是否有任何錯誤,現在它正在工作o.O,雖然沒有分歧....好吧..無論如何謝謝你 – Blade

+0

ohh..thats真的很奇怪然後 – Dhiraj

+1

不客氣。我很高興,至少你的問題解決了。保持良好的工作 – Dhiraj