indexOff(); 在数组中查找元素。两个参数,第一个为要查找的元素,第二个为从什么位置开始找,返回值为查找到的元素下标,没有查找到则返回-1。若参数只写一个,则指要查找的元素,只查找第一个出现的,不查找重复的元素所有下标,则要用到条件判断。
lastIndexOf(); 从后向前搜索,返回的是查找到的元素下标。参数为要查找的元素。
reverse(); 颠倒数组中元素的顺序。返回的是一个数组。注意:使用reverse()后,原数组也发生了倒序,返回的新数组和原数组是引用关系(===相等关系)。
sort(); 对数组的元素进行排序。返回的是一个数组。注意:使用sort()后,原数组也发生了排序,返回的新数组和原数组是引用关系(===相等关系)。
arr.sort(function(pre,next){ //或参数为a,b
return pre-next; //由小到大排序,可理解为前减后为负数。让每一个去运算返回一个值然后排序。如return -1;表示只进行一趟的冒泡排序,把最大值冒泡到了最后面。那么pre-next表让该数组的每一个元素都去运算把最大值排到最后面
return next-pre; //由小到大排序
});
sort排序也可用于对象里的关键字排序。
<script>
var data=[
{id:1001,name:"餐饮1",num:1,price:10},
{id:1002,name:"餐饮2",num:1,price:20},
{id:1003,name:"餐饮3",num:1,price:30},
{id:1004,name:"餐饮4",num:1,price:40},
{id:1005,name:"餐饮5",num:1,price:50},
{id:1006,name:"餐饮6",num:1,price:60},
{id:1007,name:"餐饮7",num:1,price:70},
{id:1008,name:"餐饮8",num:1,price:80},
{id:1009,name:"餐饮9",num:1,price:90},
];
for(var i=0;i<data.length;i++){
data[i].num=parseInt(Math.random()*8+2); //2-10的随机数
}
data.sort(function(a,b){
return a.num-b.num;
});
console.log(data);
</script>
0-100之间四个随机数,不重复。
方法一:有点繁杂
<script>
var arr1=[];
while(var1.length<4){
var num=parseInt(Math.random()*100);
if(var1.indexOf(num)===-1){ //如果在arr1中找不到则将随机数加进arr1,为避免重复的操作
arr1.push(num);
}
}
console.log(arr1);
</script>
方法二用的是排序的随机乱序
<script>
var arr1=[];
for(var i =0;i<100;i++){
arr1.push(i);
}
arr1.sort(function (){
return Math.random()-0.5; //这里有可能出现正值(大到小排列)也有可能出现负值(小到大排序)。注意是数组里每一个元素都进行一次随机的Math.random()-0.5排序
});
arr1.length=4;
console.log(arr1);
</script>
抽奖
<script>
var arr1=[];
for(var i=0;i<9985;i++){
arr1.push();
}
for(var j=1;j<6;j++){ //用递增的方式设置各中奖次数
for(var a=0;a<j;a++){
arr1.push(j);
}
}
arr1.sort (function(){
return Math.random()-0.5;
});
console.log(arr1);
</script>