@Kim_Soal

Js проблема с возвратом значения?

есть код одной функции

function Name(){
 ........
 var ept = getArrayFromTree(path.split("/"), null);
 console.log("1", ept);
}


и есть та вызываемая функция
function getArrayFromTree(step_to, now_arr){
 ......
 else{
  console.log("2",now_arr);
  return now_arr;
 }
}


когда функция вызывается, в консоль попадает
2 {выводится то что нужно}
1 undefined


Полный код
<script type="text/javascript">

var tree = document.getElementById("qwe").innerHTML;
tree = JSON.parse(tree);
var new_images = document.getElementById("new_images");



generetaImagesFolders("");


function generetaImagesFolders(path){

	var now = document.getElementById("new_images_path_now").innerHTML;
	var step_to = now+path;
	document.getElementById("new_images_path_now").innerHTML = step_to;
	new_images.innerHTML = "";


	var ept = getArrayFromTree(path.split("/"), null);
	
	console.log("1", ept);
	

	for( key in ept){
		
		new_images.innerHTML += "<div data-name-path='"+key+"'>"+key+"</div>";
	}

	renewEvents();
}
	
function renewEvents(){
	var sometings = new_images.querySelectorAll("div");
	for(var i = 0; i<sometings.length; i++){
		sometings[i].onclick = function(){
			// console.log(this.getAttribute('data-name-path'));
			generetaImagesFolders(this.getAttribute('data-name-path'));
		}
	}
}


function getArrayFromTree(step_to, now_arr){
	

	if(now_arr === null) {
		now_arr = tree;
	}

	var first = step_to.shift();
	

	if(first !== "" && first !== undefined) {
		getArrayFromTree(step_to, now_arr[first]);
	}

	else{
		console.log("2",now_arr);
		return now_arr;
	}



}


</script>



при этом, первый раз все нормально строится
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 2
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Может не туда возвращает просто? Можно полный код второй функции?
Ответ написан
Комментировать
Сильно не смотрел, но навскидку попробуйте добавить return
return getArrayFromTree(step_to, now_arr[first]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы