for (var i=0;i<len;i++) {
if (data.Flight.hasOwnProperty(i)) {
var segm_data = data.Flight[i].Segment;
var suppliers = get_supplier(segm_data);
//console.log(segm_data);return true;
var flight_start_time = segm_data[0].Departure.attributes.Time;
var flight_end_time = segm_data[0].Arrival.attributes.Time;
var departure = segm_data[0].Departure.attributes;
var arrival = segm_data[0].Arrival.attributes;
//console.log(arrival);
var dep_all_time = arrival.Date.split('-').reverse().join('-')+' '+arrival.Time;
var arr_all_time = departure.Date.split('-').reverse().join('-')+' '+departure.Time;
var flight_time = moment(dep_all_time).diff(arr_all_time,'seconds');
if (
(time2minutes(flight_start_time) < parseInt(this.filter.data.time.departure.start))
|| (time2minutes(flight_start_time) > parseInt(this.filter.data.time.departure.end))
|| (time2minutes(flight_end_time) < parseInt(this.filter.data.time.departure_back.start))
|| (time2minutes(flight_end_time) > parseInt(this.filter.data.time.departure_back.end))
|| flight_time > parseInt(this.filter.data.time.flight)*60
|| !in_array_array(suppliers,this.filter.data.airlines)
) {
status = false;
break;
}
}
}
var flight_start_time = segm_data[0].Departure.attributes.Time;
var flight_end_time = segm_data[0].Arrival.attributes.Time;
var departure = segm_data[0].Departure.attributes;
var arrival = segm_data[0].Arrival.attributes;
var dep_all_time = arrival.Date.split('-').reverse().join('-')+' '+arrival.Time;
var arr_all_time = departure.Date.split('-').reverse().join('-')+' '+departure.Time;
var departure = segm_data[0].Departure.attributes;
var arrival = segm_data[0].Arrival.attributes;
var flight_start_time = departure.Time;
var flight_end_time = arrival.Time;
var dep_all_time = arrival.Date.split('-').reverse().join('-')+' '+flight_end_time;
var arr_all_time = departure.Date.split('-').reverse().join('-')+' '+flight_start_time;
var segm_data = data.Flight[i].Segment[0];
var flight_start_time = time2minutes(segm_data.Departure.attributes.Time);
for (var i = 0; i < len; ++i)
{
if ( !data.Flight.hasOwnProperty(i) ) {
continue;
}
var
segm_data = data.Flight[i].Segment
, suppliers = get_supplier(segm_data)
, flight_start_time = segm_data[0].Departure.attributes.Time
, flight_end_time = segm_data[0].Arrival.attributes.Time
, departure = segm_data[0].Departure.attributes
, arrival = segm_data[0].Arrival.attributes
;
var
dep_all_time = arrival.Date.split('-').reverse().join('-')+' '+arrival.Time
, arr_all_time = departure.Date.split('-').reverse().join('-')+' '+departure.Time
, flight_time = moment(dep_all_time).diff(arr_all_time,'seconds')
;
if (
(time2minutes(flight_start_time) < parseInt(this.filter.data.time.departure.start))
|| (time2minutes(flight_start_time) > parseInt(this.filter.data.time.departure.end))
|| (time2minutes(flight_end_time) < parseInt(this.filter.data.time.departure_back.start))
|| (time2minutes(flight_end_time) > parseInt(this.filter.data.time.departure_back.end))
|| flight_time > parseInt(this.filter.data.time.flight)*60
|| !in_array_array(suppliers,this.filter.data.airlines)
) {
status = false;
break;
}
}
// Было
for (var i=0;i<len;i++) {
if (data.Flight.hasOwnProperty(i)) {
// ...
}
}
// Стало
for (var i=0;i<len;i++) if (data.Flight.hasOwnProperty(i)) {
// ...
}
// Было
for (var i=0;i<flights.search_result.Air.length;i++) {
if (flights.search_result.Air.hasOwnProperty(i)) {
// ...
}
}
// Стало
for (var i=0;i<flights.search_result.Air.length;i++) {
if (!flights.search_result.Air.hasOwnProperty(i)) continue;
// ...
}
for (var i=0; i<arr.length; i++) {
if (!arr.hasOwnProperty(i)) continue;
// ...
}
for (var i=0, l=arr.length; i<l; i++) {
// ...
}
var l = arr.length;
while (l--) {
// ...
}
arr.hasOwnProperty(i)
? Вы обходите массив последовательно от 0 до arr.length-1, то есть если индексы в массиве от 0 до arr.length-1, то можно не проверять, вы обойдете все элементы, а если индексы проставлены иначе, то вы обойдете не весь массив и ваш код не работает как надо. Такую проверку обычно делают при обходе объекта с помощью for ... in ...