JS中的数组

创建数组

var list = new Array(1000);/ /申请长度为1000的数组,,脚本语言创建数组真的是方便
无视类型,你想插入什么类型的数据就什么类型的数据

list[0] = 1;
list[1] = "hello";
list[2] = new Car("Ford", "V6");
list[999] = true;
alert(list.length);    //显示1000

//创建数组的另外一种方式

var my_list = new Array(1, 2, "three", "four");
var my_list_2 = [1,2,"three","four"];   //是方括号, 不要与C++的大括号混淆!

数组可以动态增长

数组本来不能随意增长,但在脚本语言里,仿佛无所畏惧了~(当然,这是表面,底层是做了操作的)

var list = new Array(10);//申请长度为10数组
for (var i=0; i<10; i++)
    list[i] = i;
list[10] = 11;      //在后面添加一个新元素11
list[11] = 12;      //在后面再添加一个新元素12
list[100] = 100;    //数组长度变为101 ,但其中12~99的元素还没分配空间
list.length = 10;   //缩减数组长度为10
list.length = 100;  //扩张数组长度为100,   同样也是尚未分配扩张的空间

数组的遍历方式及区别

ps:JavaScript由三部分组成,ECMAScript(ES,核心),DOM(文档对象模型),BOM (浏览器对象模型)

var list = [1,2,"three","four"]; 
//方法1:这种方法局限于下标是自然数的,js的数组跟php类似,下标可以是属性,类似于哈希表中的键值对
for (var i=0; i<list.length; i++)
    document.write(list[i]);
    
//方法2:for in主要用于遍历对象属性
for (var i in list)
    document.write(list[i]);
    
//方法3:ES5新增,forEach,通过一个匿名函数遍历,不能跳过或者终止循环,但可采用将forEach放入try{},catch{},手动抛出异常的方式
list.forEach(function(element){
   document.write(element);
});

//方法4:ES6新增, 最灵活
aa.forEach(v => document.write(v));

//方法5:ES6新增,可以终止
for (var v of list)
 document.write(v);

数组可以当做栈或队列

栈:先进后出,队列:先进先出

var colors = new Array();       申请长度为0数组

colors.push("red"); //压入一个数

colors.push("blue", "green");  //压入多个个数

alert(colors.length);           //显示 3

var item = colors.pop();        //item="green"

alert(colors.length);           //显示长度2

//如果应用为队列, 就使用shift
var item = colors.shift();   //摘取第一个元素,其他元素平移一位

数组的散列表用法

这里跟php类似,都是可以写成类似键值对的形式

<script type="text/javascript">                  
    var aa = [];            
    aa['bb'] = 135;  aa['10'] = "abcdf";            //这里的数组下标是字符bb,10
    alert(aa['bb']);            
    alert(aa[10]);            
    alert(aa.length); //11, 扩展数组长度    
      
    //这里可以体验到for in跟普通的遍历的区别,for in什么都不会输出,而普通的遍历会输出0_undefined.........
    
    for (var i in aa)              
       document.write("<p>--", 
              i, "__", aa[i], "</p>");                          
    for (var i = 0; i < aa.length; i++)              
       document.write("<p>", 
              i, "__", aa[i], "</p>");                
  </script> 

数组的其他方法

var names = [Mary","Murray","Murphy","Max"];

var name_string = name.join(" : ") ;  //join方法把数组每个元素连起来,name_string="Mary : Murray : Murphy : Max"

names.sort();     //数组元素排序,排序结果:name=["Mary", "Max", "Murphy", "Murray"]

var list = [1, 3, 5, 7, 9, 11, 13];

var list2 = list.slice(1, 5);  //取下标是[1, 5)的元素,左闭右开,跟java类似

alert(list2)                   //显示3, 5, 7, 9

var list3 = list.slice(4);     //取下标4以后的元素

alert(list3)                   //显示9, 11, 13

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

legendaryhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值