Laravel集合中的增量

时间:2018-11-04 18:55:33

标签: php loops collections increment laravel-5.7

我有一个集合,如果满足条件,我想增加值。我想使用import Vue from 'vue' import Router from 'vue-router' import Home from './views/Home.vue' import Login from './views/Login.vue' import Register from './views/Register.vue' import firebase from 'firebase' Vue.use(Router) const router = new Router({ routes: [ { path: '/', name: 'home', component: Home, meta: { requiresAuth: true } }, { path: '/about', name: 'about', // route level code-splitting // this generates a separate chunk (about.[hash].js) for this route // which is lazy-loaded when the route is visited. component: () => import(/* webpackChunkName: "about" */ './views/About.vue') }, { path: '/login', name: 'login', component: Login, meta: { requiresGuest: true } }, { path: '/register', name: 'register', component: Register, meta: { requiresGuest: true } } ] }) router.beforeEach((to, from, next) => { if (to.matched.some(record => record.meta.requiresAuth)) { firebase.auth().onAuthStateChanged((user) => { if (!user) { next({ path: '/login', query: { redirect: to.fullPath } }) } else { next(); } }); } else if (to.matched.some(record => record.meta.requiresGuest)) { firebase.auth().onAuthStateChanged((user) => { if (user) { next({ path: '/', query: { redirect: to.fullPath } }) } else { next(); } }); } else { next(); } }); export default router; 方法来迭代并返回具有总数的数组(或集合)。到目前为止,我有这个:

map()

它可以工作,但我认为它看起来很奇怪,而且不是这种“粗俗”的方式。还有其他选择让它看起来更好吗?

1 个答案:

答案 0 :(得分:1)

您可以使用map()代替reduce()

return $this->reviewPhotosRepository
    ->getByHotelId($hotel_id)
    ->reduce(function ($carry, $item) {
        $carry['notChecked'] += $item['checked'] ? 1 : 0;
        $carry['published'] += $item['published'] ? 1 : 0;
        $carry['total'] += 1;
        return $carry;
    }, [
        'notChecked' => 0,
        'published' => 0,
        'total' => 0
    ]);

好些了吗?好吧,你知道,那就像你的看法,伙计。