将新项目推入数组时出错

时间:2014-03-04 03:50:42

标签: javascript jquery

imgFileName = new Array();
imgFileName = imgFileName.push(escape(theFile.name));

假设每次执行函数时都会更改theFile.name。

我控制台log imgFilename并返回1?

我想要的是通过push将值存储到数组中。

3 个答案:

答案 0 :(得分:2)

数组.push()方法在元素添加到数组后返回数组的长度,因此您要更改imgFileName变量以保存数组的长度。

你可以这样做:

var imgFileNames = [];
imgFileNames.push(escape(theFile.name));

如果您需要使用文件名:

var imgFileNames = [];
var fileName = escape(theFile.name);
imgFileNames.push(fileName);

为了清楚起见,您不希望每次在将文件名推送到阵列之前创建数组。您将需要创建一次。

答案 1 :(得分:0)

当你为运营商=分配imgFileName时,你正在重新分配它;

imgFileName = new Array();
imgFileName.push(escape(theFile.name));

Fiddle

答案 2 :(得分:0)

你只需按下不需要赋值的值,push方法返回数组的新长度

如果你尝试做imgFileName = imgFileName.push(escape(“name”));

imgFileName将始终返回长度

imgFileName = new Array();
imgFileName.push(escape(theFile.name));
console.log(imgFileName);