我完全重写了这个问题,以便更好地解释它,
我有一个对象列表,如图所示。
这些都具有属性statusCode:62467但是旅程属性如下:0,1,2,3,3,4,4,4,4
我想循环遍历这些对象并返回具有相同旅程号的重复对象的第一个。
所以我想返回大胆的对象: 0 , 1 , 2 , 3 ,3,的 4 下,4,4,4
$.each(points, function (index, point) {
for (i = 0; i < journeyNumber.length; i++) {
if (point.k.journey === journeyNumber[i] && point.k.statusCode === '62467') {
console.log(point);
latlngs.push(point.j.aa.k);
latlngs.push(point.j.aa.B);
}
}
});
屏幕截图是console.log(point)的日志,所以理想情况下我想要另一个循环,它只返回相同旅程号的第一个对象。
希望这是有道理的,谢谢你的时间。
答案 0 :(得分:2)
您可以跟踪已经处理过哪些号码,并在找到它们的副本时跳过它们。
var already_seen = []; //container for logging unique values
$.each(points, function(index, point) {
if (already_seen.indexOf(point) !== -1) return; //if already in container, skip
already_seen.push(point); //log unseen values in the container
for (i = 0; i < journeyNumber.length; i++) {
if (journey === journeyNumber[i] && statusCode === '62467') {
latlngs.push(lat);
latlngs.push(lng);
console.log(journey)
}
}
});
答案 1 :(得分:0)
如何使用filter
var unique = [];
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
$.each(points, function(index, point) {
for (i = 0; i < journeyNumber.length; i++) {
if (journey === journeyNumber[i] && statusCode === '62467') {
latlngs.push(lat);
latlngs.push(lng);
unique.push(journey)
}
}
console.log(unique.filter(onlyUnique));
});