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;
} 展开
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;
} 展开
5个回答
展开全部
这个提示是不能读取属性定义的‘time’,也就是你在paip这个方法中,并没有定义time,然后就拿过来使用了。具体我不太明白你这个方法的意思,是获取数组的时间?还是其它的,如果获取时间应该用getTime()方法
追问
数组中是有这个值的 如果改成if (array[0].time > array[1].time)就好了 求帮忙
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的构造方法的参数对不上
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
array[j+1] 数组溢出
当 j = array.length - 0 ,就是数组的长度, 您再为 j + 1 数组就溢出了。
当 j = array.length - 0 ,就是数组的长度, 您再为 j + 1 数组就溢出了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组array中没time这个属性
追问
数组中是有这个值的 如果改成if (array[0].time > array[1].time)就好了 求帮忙
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-08 · 知道合伙人互联网行家
关注
展开全部
请检查传入的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由原来的从小到大排序变成了从大到小排序。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询