在一个数组中调用对象的方法(javascript)

4

我不确定标题是否恰当。让我解释一下我的小问题。

我的代码片段非常短:

var myArray= new Array([new Date()],[123],[abc]);
var time = myArray[0].getTime()

我希望将数组中对象里的时间保存到"时间"变量中。我认为这样做应该可以,但是出现了错误。

未捕获的类型错误: myArray[0].getTime 不是一个函数

显然我的方法不正确,但我不知道问题出在哪里,也不知道如何正确操作。

问题在于你正在定义嵌套数组(数组内部的数组)。 - Bourbia Brahim
3个回答

3

它位于另一个数组内部:

var time = myArray[0][0].getTime();
//                   ^^^

工作示例:

var myArray = new Array([new Date()], [123], ['abc']),
    time = myArray[0][0].getTime();

alert(time);


1
谢谢,我在创建数组时犯了一个愚蠢的错误。这不是我的本意,我没有意识到。 - nuis

1
你定义了一个数组的数组[[], [], []],所以要获取数据元素,你应该这样做:
var myArray= new Array([new Date()],[123],['abc']);
var time = myArray[0][0].getTime();

谢谢,我以后会更加注意处理数组。 - nuis

1
你使用的代码创建了一个包含数组的数组:
var myArray= new Array([new Date()],[123],[abc]); // [[new Date()],[123],[abc]]

所以你需要调用。
myArray[0][0].getTime()

您可能想要做

var myArray = new Array(new Date(),123,abc); // [new Date(),123,abc]

或者简单地说
var myArray = [new Date(),123,abc];

作为提示,当你遇到这些错误时,请尝试使用console.log输出变量。你会发现你期望的日期实际上是一个只有一个位置的数组,并且很容易找到错误 :)

“你可能想要做”——哈哈,是的,多么遗憾,但你说得对。谢谢你的解释。 - nuis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接