马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
[size=10.5000pt]一. 数组API:
API:应用程序编程接口
什么是对象:封装数据,并提供对数据的操作方法的整体
什么是数组对象:封装了一组相关的数据,提供了对数据的操作方法
1. arr to String: 2个
1. var str=arr.toString(); ----------》默认只能以逗号分隔每个元素
2. var str=arr.join("连接符");--------------》自定义元素间的连接符,元数组对象不变,
返回新数组象
固定套路:
1. 将字符数组,无缝拼接为单词:
比如: var chars=["H","e","l","l","o"];
2. 将单词数组,拼接为句子:
比如: var chars=["hello","world","!"];
3. 将数组转化为页面上的列表/选择元素:
/* <select>
<option>北京</option>
<option>上海</option>
<option>天津</option>
<option>武汉</option>
</select> */
比如: var cities=["北京","上海","天津","武汉"];
cities=cities.join("</option><option>");
cities="<select><option>"+cities+"</option></select>";
document.write(cities);
其输出如下:
优化:频繁字符串拼接,推荐使用数组的join方法作为替代
使用join拼接步骤:
1. 先将要拼接的子字符串,放入一个数组中,临时保存
2. 遍历结束后,一次性join成一个完整字符串
练习:打印国际象棋,使用join拼接
- /*打印国际象棋棋盘:
- 行号r从0开始,到7结束
- 列号c从0开始,到7结束;
- r+c%2=0时,打印白棋,否则打印黑棋
- */
- <script>
- for(var r=1;r<=8;r++){
- for(var c=1,str=[];c<=8;c++){
- if((r+c)%2==0){
- str[str.length]="□";
- }else{
- str[str.length]="■";
- }
- }
- str=str.join("");
- console.log(str);
- }
- </script>
复制代码 其输出如下:
2. 连接数组和获取子数组:不修改原数组对象,返回新数组对象
concat: var newArr=arr.concat(值1,值2,[值3,值4].....)
例如:
var arr=[1,2,3];
var arr2=[11,22];
var arr3=arr.concat(12,23,123,arr2);
console.log(arr3);
slice: var subArr=arr.slice(starti,endi+1);
starti: 开始的位置下标
endi: 获取到的位置下表
***含头不含尾***
slice支持倒数下标,从-1开始,下面例子中可以改为var birth=pid.slice(6,-4);同样含头部含尾。
例如: //slice截取省份证号上生日
var pid=["4","2","2","0","2","3","1","9","9","0","9","2","9","9","1","2","1","1","1","7"];
var birth=pid.slice(6,14);
birth=birth.join("");
console.log(birth);
省略endi,从starti一直取到结尾
比如取手机号后4位:
//截取手机号后4位
var num=["1","5","3","2","6","5","1","4","9","7","8"];
num=num.slice(-4);
num=num.join("");
console.log(num);
3. splice:删除,插入,替换任意位置的任意个元素
直接修改原数组
删除:splice(starti,n);
//删除数组元素
var arr=[1,3,5,6,7,9,8];
arr.splice(1,3);
console.log(arr);
插入:splice(starti,0,新值1,新值2,...)
//插入元素
var arr=[1,3,5,6,7,9,8];
arr.splice(1,0,5,6,8,7);
console.log(arr);
替换:splice(starti,n,新值1,新值2,...)
//替换元素
var arr=[1,3,5,6,7,9,8];
arr.splice(1,4,5,6,8,7);
console.log(arr);
4. reverse(): 颠倒数组中所有元素的位置
***直接修改原数组
//元素前后转换
var arr=[1,3,5,6,7,9,8];
Arr.reverse();
console.log(arr);
练习:冒泡排序,按升序排列
- <script>
- function maopaoSort(arr){
- //比较r轮,r小于数组长度
- for(var i=1;i<arr.length;i++){
- //每轮比较数组长度-r次
- for(var n=1;n<=arr.length-i;n++){
- //如果arr[n]>arr[n+1],则前后交换
- if(arr[n]>arr[n+1]){
- arr[n+1]+=arr[n];
- arr[n]=arr[n+1]-arr[n];
- arr[n+1]-=arr[n];
- }
- }
- }
- }
- var arr=[3,7,4,5,8,9,6];
- maopaoSort(arr);//将数组地址复制给参数变量arr
- console.log(arr);
- </script>
复制代码
其输出结果如下:
|