Преобразовать вложенный li в групповой массив

#jquery

#jquery

Вопрос:

Это самое близкое, что у меня есть…

 var myArray = $(".req").map(function() {
    return $(".ans > li").text();
}).get();
console.log(myArray);  
 <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<ul>
  <li class="req">apple
    <ul class="ans">
      <li>apple1</li>
      <li>apple2</li>
    </ul>
  </li>
  <li class="req">banana
    <ul class="ans">
      <li>banana1</li>
      <li>banana2</li>
    </ul>
  </li>
</ul>  

Результат, который мне нужен:

   [
  apple = ["apple1", "apple2"],
  banana = ["banana1", "banana2"]
  ]
  

Я не программист и могу редактировать только существующие коды, пробовал и ошибался, но все еще безуспешно … спасибо за вашу помощь.

Ответ №1:

Вы могли бы инициализировать пустой объект массива и заполнить его следующим образом:

 var answer = {};
$.each($("li.req"), function() {
    var type = $(this).text().split("n")[0];
    answer[type] = $(this).find("li").map(function() {
        return $(this).text()
    }).get()
});
console.log(answer)  
 <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<ul>
  <li class="req">apple
    <ul class="ans">
      <li>apple1</li>
      <li>apple2</li>
    </ul>
  </li>
  <li class="req">banana
    <ul class="ans">
      <li>banana1</li>
      <li>banana2</li>
    </ul>
  </li>
</ul>