json数据排序问题
发布网友
发布时间:2022-05-01 09:37
我来回答
共2个回答
热心网友
时间:2022-04-22 19:51
你写错了。
function sortJson(json,key){
for (var i = 0; i < json.length; i++) {
for (var j = 0; j < json.length-1; j++) {
if (json[j][key]>json[j+1][key]) {
var temp=json[j];
json[j]=json[j+1];
json[j+1]=temp;
};
};
};
return json;
};
第2个循环里面的是json.length-1,不是json.length-i。
willSort集合的长度是5
外循环第一次循环:i=0;内循环的length=5.
当内循环执行第4次时,j=3,那:
json[j][key]获取到的就是下标为4个对象,也就是最后一个对象,json[j+1][key]获取的是下标为5的对象。而集合willSort集合最大下标才是4.所以当外循环第一次循环,内循环地4次循环时,才会报错
热心网友
时间:2022-04-22 21:09
数组越界了
当你第一次循环的时候,i=0,内层循环的结束条件就是j<json.length
而当j=json.length-1时,json[j+1]的访问就造成了数组越界。。追问不会吧,外循环和内循环我定义的是二个变量i和j,当i=0时,内循环从j=0一直运行到json.length-1; j也不会等于json.length-1,只是小于啊
我是根据数组的冒泡排序思想来对json数据中根据某个值来排序
数组的冒泡排序方法,运行都是对的
那么改为json为什么会出错,错误提示是传入的key参数未定义