Как посчитать количество объектов по идентификатору в списке с помощью разбора - PullRequest
0 голосов
/ 31 марта 2020

Я сделал подсчет для одного объекта, используя обещания, но когда я попытался сделать это со списком объектов, он отобразил подсчитанный объект с тем же числом объектов в списке.

Я уже отображаю транспортные средства, но мне нужно отобразить их маршруты.

Вот код для получения списка транспортных средств

const Car = Parse.Object.extend('Vehicle');
const query = new Parse.Query(Car);

//car search
app.get('/car-search', async function (req, res) {

    const VehicleInfo = [];
    query.notEqualTo("Route", null);
    query.notEqualTo("PassengerAmount", null);

    try {
        const result = await query.find();

        result.forEach(vehicle => {

            VehicleInfo.push({
                VehicleID: vehicle.id,
                VehicleImage: vehicle.get("Image")._url,
                VehicleName: vehicle.get('Name'),
                Description: vehicle.get('Description'),
                Price: vehicle.get('Price'),
                Rating: vehicle.get('Rating'),
                Route: vehicle.get('Route'),
                PassengerAmount: vehicle.get('PassengerAmount')
            });
        });
        res.render('car-search', {
            title: 'Vehiculos',
            VehicleData: VehicleInfo
        });
    } catch (error) {
        throw error;
    }

});

Вот код для подсчета Я использую это на другой странице для отображения только одного транспортного средства.

    for (let i = 0; i < result.length; i++) {
        let FoundVehicles = result[i];
        let CountRoute = query.count(FoundVehicles.get('Route'));
        let Count = CountRoute.then(function(data){

            return data;
        })

        let RouteAmount = (await Count).valueOf(FoundVehicles.get('Route'))

          VehicleInfo.push({
            VehicleName: FoundVehicles.get('Name'),
            Description: FoundVehicles.get('Description'),
            Price: FoundVehicles.get('Price'),
            Rating: FoundVehicles.get('Rating'),
            Route: RouteAmount,
            PassengerAmount: FoundVehicles.get('PassengerAmount')
        });
}

Это то, что консоль отображает в списке, если я использую счетчик там список подсчитанных маршрутов

Это пример того, что я пытаюсь сделать введите описание изображения здесь В части "Reseñas" (обзоры) у одной из машин должно быть 2, у других 3 и т. Д.

1 Ответ

0 голосов
/ 14 апреля 2020

Попробуйте:

for (let i = 0; i < result.length; i++) {
        let FoundVehicles = result[i];
        let RouteAmount = FoundVehicles.get('Route').length;

          VehicleInfo.push({
            VehicleName: FoundVehicles.get('Name'),
            Description: FoundVehicles.get('Description'),
            Price: FoundVehicles.get('Price'),
            Rating: FoundVehicles.get('Rating'),
            Route: RouteAmount,
            PassengerAmount: FoundVehicles.get('PassengerAmount')
        });
}
...