关于数组(二)

4. sort排序

无序变有序

<script>
var arr = [ 'c', 'd', 'a', 'e' ];
arr.sort();
alert( arr );//acde 按照字符的编码值排序

var arr2 = [ 4,3,5,5,76,2,0,8 ];
arr2.sort();
alert( arr2 );//0,2,3,4,5,5,76,8 按照字符串方式排序

arr2.sort(function ( a, b ) {
    return a - b;//按从小到大排序,正数换位置
});
alert( arr2 );//0,2,3,4,5,5,8,76

var arrWidth = [ '345px', '23px', '10px', '1000px' ];
arrWidth.sort(function ( a, b ) {
    return parseInt(a) - parseInt(b);//只会改变位置,不会改变值的类型
});
alert( arrWidth );

</script>

有序变无序

<script>
var arr = [ 1,2,3,4,5,6,7,8 ];

arr.sort(function ( a, b ) {
    return Math.random() - 0.5;//正值交换,负值不交换
});

alert( arr );

// alert( Math.random() );

</script>

5. 随机数及随机公式推理过程

Math.random():随机产生0-1之间的小数点
Math.round():四舍五入
随机产生0-1之间的整数
Math.round(Math.random());
随机产生0~10之间的整数
Math.round(Math.random()*10)
随机产生5~10之间的整数
Math.round( Math.random()*5 + 5 )
随机产生10~20之间的整数
Math.round( Math.random()*10 + 10 )
随机产生20~100之间的整数
Math.round( Math.random()*80 + 20 )

推导
// x ~ y
var x = 3;
var y = 49;
// alert( Math.round( Math.random()*(y-x) + x ) );

// 0~x
// alert( Math.round( Math.random()*x) );

// 1~x
alert( Math.ceil( Math.random()*x) );

6. concat、reverse、面试题及练习

concat:连接数组

<script>
var arr1 = [ 1,2,3 ];
var arr2 = [ 4,5,6 ];
var arr3 = [ 7,8,9 ];
alert( arr1.concat( arr2, arr3 ) );
</script>

reverse:反转数组

var arr1 = [ 1,2,3,4,5,6 ];
arr1.reverse();
alert( arr1 );//654321
var str = 'abcdef';
//split将字符转成数组
//join() 方法用于把数组中的所有元素放入一个字符串。
alert(str.split('').reverse().join(''));

// 课上小练习:
// 随机产生 100 个从 0 ~ 1000 之间不重复的整数
// var str = ‘aaasdlfjhasdlkfs’;
// indexOf(’s’) —— 为数组编写该方法:indexOf(‘img/1.jpg’)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值