Вы l oop через ключи объекта, но всегда возвращаетесь на первой итерации.
Вы можете использовать .map для сопоставления всех пар ключ / значение obj
с HTML строк и .join их:
colors
и alphabets
отображались как значения, разделенные запятыми, потому что вы поместили весь массив в один элемент <li>
: <li class='float-left'>${obj[key]}</li>
. Чтобы создать несколько элементов <li>
, вам необходимо сопоставить каждый элемент массива с новым <li>
:
const list = obj[key].map(li => `<li class='float-left'>${li}</li>`).join('');
const obj = {
'alphabets':['abc', 'xyz', 'pqr'],
'colors':['red', 'blue', 'purple']
}
const mapToHtml = key => {
const list = obj[key].map(li => `<li class='float-left'>${li}</li>`).join('');
return `<h3 class='float-left'>${key}</h3><ul class='float-left'>${list}</ul>`;
}
$.dialog({
title: 'Test',
columnClass: 'col-md-6 col-md-offset-6',
content: () => Object.keys(obj).map(mapToHtml).join('')
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.4/jquery-confirm.min.js"></script>