所以我有一个函数从参数中获取一个对象数组。在此示例中,数组中有4个对象。该对象包含键:
{ 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个reportedBy
和reason
值。所以我使用了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);
我甚至尝试使用从0到4迭代的for循环,但我仍然没有得到所有4个值,只有3个因为两个是相同的。 for循环跳过重复值是否正常?
答案 0 :(得分: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);
}
&#13;