函数中的返回数组给出了未定义的javascript

时间:2015-06-02 09:04:10

标签: javascript

我的javascript中有点奇怪的行为。我想通过使用返回操作数组的函数来使document.ready更清洁。

function manipulateArray(arrayToBeManipulated){
  var result=new Array();
  //...push something in result....
  result.push(arrayToBeManipulated[0]);
  console.log(result);
  return result;
}

console.log始终向我显示正确的结果。但是当我调用方法时

//...code...//
var x=new Array();
//push something into x
var result=manipulateArray(x);
console.log(result);

它始终显示undefined。有这个原因吗?

编辑也许我忘了告诉该函数是在$.ajax请求中调用的。这可能是问题吗?

2 个答案:

答案 0 :(得分:3)

结果不是undefined [undefined]

  1. 您创建的数组X中没有任何内容。
  2. 您创建的数组Y中没有任何内容。
  3. 将数组X的0索引(隐含undefined)推入Y
  4. 您返回Y(现在索引undefined的显式值为0

答案 1 :(得分:2)

这是因为您的新Array x为空,将某些内容推入其中,因为当您在函数中操作数组时,您为您的第一个索引[undefined]问题,

我已推出单个元素,现在可以使用了



function manipulateArray(arrayToBeManipulated){
  var result=new Array();
  //...push something in result....
  result.push(arrayToBeManipulated[0]);
  console.log(result);
  return result;
}


//...code...//
var x=new Array();
x.push(1);
var result=manipulateArray(x);
console.log(result);