首页 > 网站 > WEB开发 > 正文

javascript 数组

2024-04-27 14:08:06
字体:
来源:转载
供稿:网友

javascript 数组

2015-06-17 16:57 by 半梦半醒。, ... 阅读, ... 评论, 收藏, 编辑

1.定义:① var arr = [1,2,3];② var arr = new Array(1,2,3);

2.属性:length-->可对数组进行读、写var arr =[1,2,3];alert(arr.length); // 3arr.length = 1 ; //此时数组里仅剩下一个值,其它值被清空

扩展:快速清空数组元素的方法:① arr.length = 0;② arr[]; //效率比上面的高点

3.方法:① 添加:push()、unshift() push():添加值到数组末尾,返回数组的最新长度 unshift():添加值到数组前端,返回数组的最新长度

② 删除:pop()、shift() pop():删除数组最后面的值,返回被删除的那个值 shift():删除数组最前面的值,返回被删除的那个值

实例:

<script>  var arr =[1,2,3,4,5,6];  arr.unshift(arr.pop());    //把数组的最后一个值删除并插入到第一个位置  alert(arr);                //6,1,2,3,4,5</script>

  

<script>  var arr =[1,2,3,4,5,6];  arr.push(arr.shift());         //把数组的第一个值删除并插入到最后一个位置  alert(arr); //2,3,4,5,6,1</script>

③ 添加、删除、替换:splice()splice():能对数组元素进行添加、删除、替换操作,返回值为被删除的那个值,如果没有删除操作,将无返回值。实例:  

<script>       var arr = [1,2,3,4,5,6];  arr.splice(0,2);         // 从第0位开始,删除两个值  alert(arr);           // 3,4,5,6  arr.splice(4,1,'lily');   //从第4位开始,添加1个值“lily”  alert(arr);            //3,4,5,6,lily  arr.splice(1,0,'jack');    //把4换成'jack'  // alert(arr);          //3,jack,4,5,6,lily</script>  

实例:数组去重

<script>  var arr =[1,2,3,4,3,2,3,5,6];  for(var i=0; i<arr.length; i++){    for(var j=i+1; j<arr.length; j++){      if(arr[i] == arr[j]){        arr.splice(j,1);        j--;      }    }  }  alert(arr);     // 1,2,3,4,5,6</script>  

④ 排序:sort()方式一:按照字符编码排序

<script>  var arr = ['b','d','a','c'];  arr.sort();  alert(arr); //a,b,c,d</script>  

方式二:借助比较函数去排序 实例:有序排序

<script>  var arrWidth = ['10px','30px','222px','2px'];  arrWidth.sort(function(a,b){    return parseInt(a)-parseInt(b);  });  alert(arrWidth);      //2px,10px,30px,222px</script>

实例:随机排序

<script>  var arr = [1,2,3,4,5,6,7];  arr.sort(function(a,b){    return Math.random()-0.5;  });  alert(arr);       //2,3,1,5,6,4,7</script>

扩展:随机函数Math.random();Math.random()是0~1之间的随机函数Math.round()是四舍五入取整的函数Math.ceil()向上取整函数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之间的随机整数:  Math.round(Math.random()*(y-x))+x);0~x之间的随机整数:  Math.round(Math.random()*x);1~x之间的随机整数:  Math.ceil(Math.random()*x);

④ 连接数组:concat()

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

⑤ 颠倒数组位置: reverse()  

<script>  var arr1 = [1,2,3,4,5,6];  arr1.reverse();  alert(arr1);      //6,5,4,3,2,1</script>

扩展:颠倒字符串位置  var str = "abcdef";  alert(str.split('').reverse().join(''));   //fedcba

⑥ join();

join() 方法用于把数组中的所有元素组合成一个字符串,元素根据指定分隔符进行分割,返回值是字符串。

<script>    var arr=['red','yellow','pink'];  alert(arr.join("-"));   //red-yellow-pink  alert(typeof arr.join());    //string</script>   

⑦ 迭代方法:every()、filter()、forEach()、map()、some()

传入这些方法中的函数会接收三个参数:   数组项的值   该项在数组中的位置   数组对象本身

第一种: every()、some() 用于查询数组中的项是否满足某个条件

every():传入的函数必须对每一项都返回ture,这个方法才会返回ture,否则返回false。    

<script>       var number = [1,2,3,4,5,6,7,8,9];    var result = number.every(function(item,index,array){      return (item > 2);    });    alert(result);     // false,因为传入的函数只有部分满足>2这个条件</script>  

some():传入的函数中有一项返回ture,这个方法就返回ture。

<script>  var number = [1,2,3,4,5,6,7,8,9];  var result = number.some(function(item,index,array){    return (item > 2);  });  alert(result);     // ture ,传入的函数只要有一项满足>2的条件即可</script>

第二种: filter() 对传入的函数,筛选出符合条件的数组项 ,返回ture的项组成的数组

实例:返回一个所有的值大于2的数组。

<script>  var number = [1,2,3,4,5,6,7,8,9];  var result = number.filter(function(item,index,array){    return (item>2);  })  alert(result);   // 3,4,5,6,7,8,9</script>  

第三种:map() 对原数组的每一个对应项做相应操作后,返回其操作后的数组

例如:给数组中的每一项乘以2,然后返回这些乘积组成的数组

<script>  var number = [1,2,3,4,5,6,7,8,9];  var result = number.map(function(item,index,array){    return item * 2;  });  alert(result);     // 2,4,6,8,10,12,14,16,18 结果会在原数组的基础上每项乘以2</script>

第四种 :forEach() 对数组中的每一项运行传入的函数,无返回值,本质上与for循环迭代数组一样。

<script>  var number = [1,2,3,4,5,6,7,8,9];  number.forEach(function(){    // 做点什么...  });</script>

参考资料:妙味课程视频、Javascript高级程序设计


上一篇:js经验1

下一篇:AngularJS之forEach

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表