Как найти первый и последний элемент в каждом конкретном цикле в условии if?

#javascript #jquery #ajax

Вопрос:

Я хочу добавить новый div для первого и последнего элемента в цикле. Который мы можем легко получить с помощью длины функции jQuery. Но в моем сценарии мне нужно получить только Первый и Последний пункт, если у нас есть определенные условия.

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

Я хочу добавить новый div, когда в первый раз в скрытом состоянии и в последний раз. Есть ли какой-нибудь способ добавить его?

 $.each(obj.dynamicList, function(i, v){
    //console.log(i);
    var label    = v['label'];
    var name     = v['id'];
    var value    = v['value'];
    var required = v['required'];
    var type     = v['type'];
    var list     = v['list'];

    if(v['type'] == "Input" amp;amp; v['id'] == "email" ){
        $('#part3_append_form').append("<div class='form-group'><label class='ssjob-label'>"  label  "</label><input type='email' class='form-control' "  (required == 'Y' ? 'required': '')   "  id='"  name  "' name='"  name  "' value='"  email  "'></div>");
    
    }else if( v['type'] == "Hidden"){

      $('#part3_append_form').append("<input type='hidden' class='form-control' name='"  name  "' value='"  value  "'>");
    
    }else{
        $('#part3_append_form').append("<div class='form-group'><label class='ssjob-label'>"  label  "</label><input type='text' "  (required == 'Y' ? 'required': '')   " class='form-control' id='"  name  "' name='"  name  "' value='"  value  "'></div>");
    } 
});
 

Ответ №1:

вы можете перехватывать объекты скрытого типа с помощью фильтра.

   var examplObj= [
    {
      label: "obj 00",
      name: "id",
      value: "value",
      required: "required",
      type: "type",
      list: "list",
    },
    {
      label: "obj 01",
      name: "id",
      value: "value",
      required: "required",
      type: "type",
      list: "list",
    },
    {
      label: "obj 02",
      name: "id",
      value: "value",
      required: "required",
      type: "Hidden",
      list: "list",
    },
    {
      label: "obj 03",
      name: "id",
      value: "value",
      required: "required",
      type: "type",
      list: "list",
    },
    {
      label: "obj 04",
      name: "id",
      value: "value",
      required: "required",
      type: "Hidden",
      list: "list",
    },
    {
      label: "obj 05",
      name: "id",
      value: "value",
      required: "required",
      type: "Hidden",
      list: "list",
    },
    {
      label: "obj 06",
      name: "id",
      value: "value",
      required: "required",
      type: "type",
      list: "list",
    },
  ];

  var filtered = examplObj.filter((t) => t.type == "Hidden");
  var firstHidden = filtered[0]; // first time
  var lastHidden = filtered[filtered.length - 1]; // last time