Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2021, 15:24   #1
Konstantin556
Новичок
Джуниор
 
Регистрация: 11.11.2021
Сообщений: 2
По умолчанию Не удаётся перенести функцию с vue.js на php используя lodash и lodash-php

Нашёл lodash-php, который идентичен lodash на js. На vue.js внутри reduce объявляется функция x, к которой обращается затем вот эта строка a[attributeName][2021] = a.handbook_items.reduce(x, 0); На php насколько понял нельзя сделать точно также. Вопрос, как можно обойти эту особенность языка?

vue.js код:
Код:
distributionSumOverTree() {
      let attributeName = "plan_value";

      this.distributionSumOverTreeNew = this.dataReptt.reptt.reduce(function x(r, a) {
        let hasChild;
        if (a.handbook_items != null) {
          hasChild = a.handbook_items.length > 0;
        }
        if (hasChild) {
          a[attributeName][2021] = a.handbook_items.reduce(x, 0);
        }

        return r + a[attributeName][2021];
      },
      0);
    },

php код:
Код:
public function sumOverTree3($data)
    {

        reduce($data, function x  ($r, $a) {
                if (is_array($a)) {
                    if (count(array_keys($a)) == 18) {
                        if ($a['handbook_items'] > 0) {
                            $hasChild = count($a['handbook_items']) > 0;
                        }

                        if (isset($hasChild)) {

                            $a['plan_value'][2021] = reduce($a['handbook_items'], x, 0);
                        }

                        return $r + $a['plan_value'][2021];
                    }
                }
            },
            0
        );
    }
Konstantin556 вне форума Ответить с цитированием
Старый 11.11.2021, 15:48   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

понять - что должна делать функция в принципе и написать ее самостоятельно

а в целом что у вас - ошибку выдает? Или функция не работает как задумано?
ADSoft вне форума Ответить с цитированием
Старый 11.11.2021, 16:14   #3
Konstantin556
Новичок
Джуниор
 
Регистрация: 11.11.2021
Сообщений: 2
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
понять - что должна делать функция в принципе и написать ее самостоятельно

а в целом что у вас - ошибку выдает? Или функция не работает как задумано?
На фронте работает, только не полностью так как нужно. Приходится переносить на бэкэнд и там после этой функции планируется производить расчёты. Дочерние элементы будут суммироваться и выводить сумму в родителе. Далее внутри будут статьи, которые будут вычитаться и суммироваться между собой.
Konstantin556 вне форума Ответить с цитированием
Старый 11.11.2021, 19:27   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Может тогда описать что нужно и сделать нужную функцию без оглядки на фронт? А если данные берутся из бд, возможно там проще и правильнее будет сделать
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести функцию count mysql в php reanimatik PHP 7 07.06.2019 12:20
PHP Перенести PHP проект на облачный сервис 203 Фриланс 1 02.06.2015 13:35
Ищу функцию PHP Arassir PHP 6 14.04.2011 09:57
Перенести данные с сайта (php + MySQL) new player WordPress и другие CMS 2 08.12.2010 22:18
написать функцию в скрипте(php) Sysman Фриланс 1 30.09.2008 12:32