js 对象数组乱序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 对象数组乱序相关的知识,希望对你有一定的参考价值。
后台java有
class a
String content
List<String>
Map<String,String>
然后往前台传了一个
不知长度的
List<a>
现在要求把这个List<a> 的顺序打乱
比如a是的你的数组 然后根据a数组里面每个对象的id属性排序:
var a = [];
a.sort(function (o, p)
return o.id - p.id;
); 参考技术A 好奇怪的问题追问
因为搜索出来的那些js 数组乱序我试过好像不适用 对象数组
追答为什么要乱序?
追问类似于驾考的应用题目乱序
js数组乱序输出 数组乱序排列
网上看的数组乱序输出,要么不合实际,要么代码繁琐。自己试了下,希望能给大家带来帮助。
重要思想也是Math.random*arr.length随机下标,然后删除取到的元素,继续随机下标。
//将数组乱序输出 var arr = [1,2,3,4,5,6,7,8,9,10]; var newArr = []; for(var i=0; i<arr.length; i++){ var index = Math.floor(Math.random()*arr.length);//随机下标 newArr.push(arr[index]);//将随机出的元素,存放新数组newArr中去 arr.splice(index,1);// 将随机出的元素在arr中删除 } //arr中删除随机出的元素,arr.length-1,同时i++,导致循环不会10次,会是5次.最后得到newArr中只有一半的随机数字,arr中剩下另一半. 将其合并到一起,得到res var res =[...newArr,...arr]; console.log(res)
结果如下:
随后也有个问题,这个其实只随机了一半的数字,后一半没有随机,只是合并了上去。
改进后:
var arr = [1,2,3,4,5,6,7,8,9,10]; var newArr = []; var len = arr.length; for(var i=0; i<len; i++){ var index = Math.floor(Math.random()*arr.length);//随机下标 newArr.push(arr[index]);//将随机出的元素,存放新数组newArr中去 arr.splice(index,1);// 将随机出的元素在arr中删除 } //arr中删除随机出的元素,arr.length-1,同时i++,导致循环不会10次,会是5次.最后得到newArr中只有一半的随机数字,arr中剩下另一半. 将其合并到一起,得到res var res =[...newArr,...arr]; console.log(res)
把len当成,作为循环条件,最后所有的都是随机的,结果如下:
以上是关于js 对象数组乱序的主要内容,如果未能解决你的问题,请参考以下文章