Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Дублируется значение в массиве (https://javascript.ru/forum/misc/65740-dubliruetsya-znachenie-v-massive.html)

Antonqq 05.11.2016 16:21

Дублируется значение в массиве
 
есть такой код:
$(function() {

  function buildJSON($li) {
    var subObj = { "name": $li.contents().eq(1).text().trim() };
    $li.children('ul').children().each(function() {
      if (!subObj.children) { subObj.children = []; }
      subObj.children.push(buildJSON($(this)));
    });
    return subObj;
  }
    
  var obj = buildJSON($(".dd-list").children());
  $('.adsadd').append(JSON.stringify(obj, null, 2));

});


И такой список:

<ul class="dd-list add_new_item">
		<li class="dd-item" data-id="11">
			<div class="dd-handle">1</div>
			<ul class="dd-list">
				<li class="dd-item" data-id="14">
					<div class="dd-handle">1.1</div>
					<ul class="dd-list">
						<li class="dd-item" data-id="15">
							<div class="dd-handle">1.1.1</div>
							<ul class="dd-list">
							</ul>
						</li>
					</ul>
				</li>
			</ul>
		</li>
	</ul>



А на выходе мне дает это:
{ "name": 1, "children": [ { "name": 1.1, "children": [ { "name": 1.1.1 } ] }, { "name": 1.1.1 } ] }


А должно быть по идее
{ "name": 1, "children": [ { "name": 1.1, "children": [ { "name": 1.1.1 } ] }


Часовой пояс GMT +3, время: 04:13.