Push 不是函数 JavaScript 错误
2013-01-10
50090
在下面的代码中,我得到了“push 不是函数”的错误。有人能告诉我我在这里做错了什么吗?我正在尝试在 Javascript 中创建 2D 数组。
var myArray = new Array(4);
myArray = ["0","0","0","0"];
for (var i=0; i<myArray.length; i++) {
myArray[i].push("ID");
myArray[i] = new Array(1);
for (var j=0; j<myArray[i].length; i++) {
myArray[i][j].push("Array[j]");
}
}
Firebug 指向我:
myArray[i].push("ID");
对于这一行,我得到了“TypeError:myArray[i].push 不是函数”
最终数组应该是这样的:
[ID,"SomeValue1"],
[ID,"SomeValue2"],
[ID,"SomeValue3"]
我无法硬编码,我需要根据数据库中的数据动态创建它
3个回答
myArray[i].push("ID");
当然是无效的,因为它是为
Array
定义的函数,而不是为其元素定义的函数。
有效语法是
myArray.push("ID");
要了解有关
array.push()
的更多信息,请访问
此处
。
yogi
2013-01-10
这将创建您的示例。
var myArray = new Array(4);
for (var i = 0; i < myArray.length; i++) {
myArray[i] = ["ID", "SomeValue" + (i+1)];
}
但如果您需要从数据库设置数据,那么如何在 Javascript 中设置?如果它在不同的数组中,您可以执行以下操作:
var dbArray = ["SomeValue1", "SomeValue2", "SomeValue3"];
var myArray = new Array(dbArray.length);
for (var i = 0; i < myArray.length; i++) {
myArray[i] = ["ID", dbArray[i]];
}
Rhumborl
2013-01-10
首先,您可以使用数组文字
[]
来初始化数组,这始终是首选
然后
push
是一个数组方法。因此您必须在数组上调用它
myArray[i]
是数组的元素,
myArray
是数组
var arr = [];
for (var i = 0; i < 5;i++) {
arr.push = []; //Uses the Arrays push method
for ( var j = 0; j < 5; j++)
arr[i][j] = "Asd"; //Sets an Element
}
console.log(arr);
并且如您所见,不需要“Dim”数组,您只需将数组分配给变量并开始在其中推送元素即可。
如您在示例中所见,第一次
push
直接在
arr
之后,它是数组方法并将新元素附加到数组
而在第二个示例中,它访问元素并直接为其分配一个值
您在代码中所做的是尝试在元素数组上调用 push 方法
假设
i
为
0
则
'myArray[i]' 是
“0”
并且字符串
“0”
没有方法推送。
但是你可以直接将一个新的字符串分配给元素。
myArray[i] = "ID"
Moritz Roessler
2013-01-10