重新调整in Function不会在javascript中返回数组。如何让它返回数组? [英] retun arr; in Function does not return array in javascript. How do I make it to return an array?

查看:70
本文介绍了重新调整in Function不会在javascript中返回数组。如何让它返回数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在下面的代码中,myDwt()函数不返回数组,而numToBin()使用相同的return语句返回数组。我也想让myDwt()返回一个数组。



In the below code myDwt() function does not return an array whereas numToBin() returns an array using the same return statement. I want myDwt() to return an array too.

var xmlhttp = new XMLHttpRequest();
var url = "dat2.txt";
var level = 0;
var toEmbed = "A";
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var myArr = JSON.parse(xmlhttp.responseText);
		main(myArr);
	   //myDwt(myArr,8,0);
	   //display(arrg);
    }
}
xmlhttp.open("GET", url, true);
xmlhttp.send();

function myDwt(arr,n,m) {
	var i;
	var k;
	var arr2= [];
	var arr3=[];
	
	level++;
	
	for(i=0; i < n/2; i++)
	        arr2.push(( arr[ 2 * i ] + arr[ ( 2 * i ) + 1] ) / 2);
	
	for(i=0; i < n/2; i++)
		arr3.push(( arr[ 2 * i ] - arr[ ( 2 * i ) + 1] )  / 2);	
	
	for(i=0;i<arr2.length;i++)
		arr2[i] = parseFloat(arr2[i].toFixed(2));
		
	for(i=0;i<arr3.length;i++)
		arr3[i] = parseFloat(arr3[i].toFixed(2));
	
	var arr4 = arr2.concat(arr3);
	k = arr4.length
	while(k < (arr.length) )
	{
		arr4.push(arr[k]);
		k++;
	}
	
	
	if (level == 3 && m==0)	
		return arr4;
	
	else if (level == 3 && m==1)
		arr4 = numToBin(arr4);

	else
		myDwt(arr4,n/2,0);
}
function main(arr)
{
	
	var arr1 = myDwt(arr,8,0);    //Does not return anything
	prompt(isArray(arr1));        //No output
}
function numToBin(arr) {
	
	var i;
	var output = [];
	
	for(i=0;i<arr.length;i++)
	{
		arr[i] = arr[i] + 100; 
		arr[i] = parseInt(arr[i].toFixed(0));
		arr[i]= arr[i].toString(2);
		output.push(Array(8-arr[i].length+1).join("0") + arr[i]);
	}
	
	return output;     //returns an array
}
function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

推荐答案

使用关键字 return ::: - )

Use keyword "return": :-)
return arr4;






or

return myDwt(arr4,n/2,0);



我没有检查你的递归,小心。



还有什么?啊,在用任何语言编写代码之前,请学习该语言。



-SA


这篇关于重新调整in Function不会在javascript中返回数组。如何让它返回数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆