javascript 总出现这个错误 Uncaught TypeError: Cannot read property 'time' of undefined 求大神帮忙

functionpaip(array){vartemp='';for(vari=0;i<array.length;i++){for(varj=0;j<array.leng... function paip(array){
var temp = '';
for (var i = 0; i < array.length; i++)
{
for (var j = 0; j < array.length - i; j++)
{
if (array[j].time > array[j + 1].time)
{
temp = array[j + 1].time;
array[j + 1].time = array[j].time;
array[j].time = temp;
}
}
}
return array[0].time;
}
展开
 我来答
ilovebama1
2013-04-08 · 超过14用户采纳过TA的回答
知道答主
回答量:40
采纳率:100%
帮助的人:21.9万
展开全部
这个提示是不能读取属性定义的‘time’,也就是你在paip这个方法中,并没有定义time,然后就拿过来使用了。具体我不太明白你这个方法的意思,是获取数组的时间?还是其它的,如果获取时间应该用getTime()方法
追问
数组中是有这个值的  如果改成if (array[0].time > array[1].time)就好了 求帮忙
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-04-17 · TA获得超过2.3万个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:5.6万
展开全部

你的构造方法的参数对不上

class Namecard

private String name;

private String address;

private Phone data;

public Namecard(String n,String a,String str3,String str4)

name = n;

address = a;

data = new Phone(str3,str4);

class Phone

private String company;

private String cell;

Phone(String s1, String s2)

company = s1;cell = s2

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大刀砍向东洋猪
2013-04-08 · TA获得超过482个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:65.6万
展开全部
array[j+1] 数组溢出

当 j = array.length - 0 ,就是数组的长度, 您再为 j + 1 数组就溢出了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuanunique
2013-04-08 · TA获得超过159个赞
知道小有建树答主
回答量:291
采纳率:100%
帮助的人:155万
展开全部
数组array中没time这个属性
追问
数组中是有这个值的  如果改成if (array[0].time > array[1].time)就好了 求帮忙
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扎俊
2013-04-08 · 知道合伙人互联网行家
扎俊
知道合伙人互联网行家
采纳数:366 获赞数:1525
涉猎C#;C++,vb,vb script,asp,PHP,JS,w3c,网站运营、推广等

向TA提问 私信TA
展开全部
请检查传入的array的单元是否具有time属性。
追问
数组中是有这个值的  如果改成if (array[0].time > array[1].time)就好了 求帮忙
追答
是个排序吧~
这一句:
for (var j = 0; j < array.length - i; j++)

改成:
for (var j = 0; j < array.length - i-1; j++)
因为当i=0时,j值可以到array.length-1的,下面的array[j+1]是就溢出了,元素都没有,其属性肯定也没有啦。

测试代码:
var ss = function (i){
this.time=i;
this.name="s"+i;
};
var aa=new Array();
for(var i=0;i<10;i++){
aa.push(new ss(i));
}
function paip(array){
var temp = '';
for (var i = 0; i < array.length; i++)
{
for (var j = 0; j < array.length - i-1; j++)
{
if (array[i].time < array[j + 1].time){
temp = array[j + 1].time;
array[j + 1].time = array[i].time;
array[i].time = temp;

}}}
return array;
}
paip(aa);

运行后
可以发现,aa数组元素的time由原来的从小到大排序变成了从大到小排序。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式