как упростить мой дубль-л oop javascript - PullRequest
0 голосов
/ 27 марта 2020

Я составляю таблицу лиц, которые могут быть юридическими лицами ", но с двойным l oop грязным, я хочу знать, возможно ли упростить мой двойной l-1004 *?

var select_entite_juridique_options = {};
var exist_selected = {};
var current_values = $(this).val();

if (typeof(current_values) != 'undefined' && (current_values != '' || current_values != null)) {
    $.each(select_entites_salarie.find(':selected'), function(index, value){
        var current_opt = $(this);
        $.each(current_values, function(i, v){
            if (current_opt.val() == v) {
                select_entite_juridique_options[current_opt.val()] = current_opt.text();
                exist_selected[current_opt.val()] = current_opt.val();
                pdlf.main.debug(' ID SELECTION DANS ENTITE = ' + current_opt.val() + ' | TEXT = ' + current_opt.text());
               return true;
            }
        });
   });

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

На самом деле 2 одинаковы (но не совсем одинаково отформатированы), поэтому второй из них был бесполезен

if (typeof (current_values) != 'undefined' && (current_values != '' || current_values != null)) {
    $.each(select_entites_salarie.find(':selected'), function (index, value) {
        var current_opt = $(this);
        select_entite_juridique_options[current_opt.val()] = current_opt.text();
        exist_selected[current_opt.val()] = current_opt.val();
        pdlf.main.debug(' ID SELECTION DANS ENTITE = ' + current_opt.val() + ' | TEXT = ' + current_opt.text());
        return true;
    });
0 голосов
/ 27 марта 2020

Вместо того, чтобы использовать $ каждый, вы можете использовать find. Это мы будем быстрее. Не будет повторять все значения.

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

Образцы:

var select_entite_juridique_options = {};
var exist_selected = {};
var current_values = $(this).val();

if (
  typeof current_values != "undefined" &&
  (current_values != "" || current_values != null)
) {
  $.each(select_entites_salarie.find(":selected"), function(index, value) {
    var current_opt = $(this);
    const data = current_values.find(v => {
        return current_opt.val() == v
    })
    if (data) {
        select_entite_juridique_options[data] = current_opt.text();
        exist_selected[data] = data;
        pdlf.main.debug(
          " ID SELECTION DANS ENTITE = " +
            data +
            " | TEXT = " +
            current_opt.text()
        );
        return true;
      }
  });
}

// С картой

if (
  typeof current_values != "undefined" &&
  (current_values != "" || current_values != null)
) {
  const valueMap = current_values.reduce( (m, cur) => {
    m[v]= v
    return v
  }, {})
  $.each(select_entites_salarie.find(":selected"), function(index, value) {
    var current_opt = $(this);
    if (valueMap[current_opt.val()]) {
        select_entite_juridique_options[data] = current_opt.text();
        exist_selected[data] = data;
        pdlf.main.debug(
          " ID SELECTION DANS ENTITE = " +
            data +
            " | TEXT = " +
            current_opt.text()
        );
        return true;
      }
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...