JavaScript中的数组

目录

创建数组的方式(2种)

方式一:

方式二:

获取数组长度

利用 length 属性,末尾添加新项

检测是否为数组

数组与字符串之间的转换

栈方法

队列方法

相反队列


创建数组的方式(2种)

方式一:

var colors = new Array();  //创建一个空数组

var colors = new Array(20);  //创建一个长度为20的数组

var colors = new Array("red", "blue", "green"); //创建一个包含3个字符串值的数组

方式二:

var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组 
var names = [];                      // 创建一个空数组 
var values = [1,2,];                  // 不要这样!这样会创建一个包含 2 或 3 项的数组 
var options = [,,,,,];                  // 不要这样!这样会创建一个包含 5 或 6 项的数组 

获取数组长度

var colors = ["red", "blue", "green"];

alert(colors.length); // 3

利用 length 属性,末尾添加新项

var colors = ["red", "blue", "green"];    // 创建一个包含 3 个字符串的数组 
colors[colors.length] = "black";          //(在位置 3)添加一种颜色 
colors[colors.length] = "brown";          //(在位置 4)再添加一种颜色 

检测是否为数组

  • ECMAScript3中语法

if (value instanceof Array){     

         //对数组执行某些操作

}

  • ECMAScript5中语法

    • 支持 Array.isArray()方法的浏览器有 IE9+、Firefox 4+、Safari 5+、Opera 10.5+和 Chrome,其它未支持浏览器解决方法待补充。

if (Array.isArray(value)){

     //对数组执行某些操作

}

数组与字符串之间的转换

var colors = ["red", "blue", "green"];    // 创建一个包含 3 个字符串的数组 

/**
* join()函数可以规定以什么方式隔开
*
*/

alert(colors.toString());     // red,blue,green 
alert(colors.join(","));       //red,green,blue 
alert(colors.join("||"));      //red||green||blue 

栈方法

栈是一种 LIFO(Last-In-First-Out, 后进先出)的数据结构,也就是新添加的项早被移除。而栈中项的插入(叫做推入)和移除(叫做 弹出),只发生在一个位置——栈的顶部。ECMAScript为数组专门提供了 push()和 pop()方法,以便 实现类似栈的行为。

  • push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
  • pop()方法从数组末尾移除后一项,减少数组的 length 值,然后返回移除的项。
var colors = new Array();                  // 创建一个数组 
var count = colors.push("red", "green");   // 推入两项 
alert(count);                              //2 
 
count = colors.push("black");              // 推入另一项 
alert(count);                              //3 
 
var item = colors.pop();                  // 取得最后一项 
alert(item);                              //"black" 
alert(colors.length);                     //2 
 

队列方法

队列数据结构的访问规则是 FIFO(First-In-First-Out, 先进先出。队列在列表的末端添加项,从列表的前端移除项。结合使用 shift()和 push()方法,可以像使 用队列一样使用数组。

  • push() 方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
  • shift()  方法从数组前端移除第一项,减少数组的 length 值,然后返回移除的项。
var colors = new Array();                   //创建一个数组 
var count = colors.push("red", "green");    //推入两项 
alert(count);                               //2 
 
count = colors.push("black");               //推入另一项 
alert(count);                               //3 
 
var item = colors.shift();                  //取得第一项 
alert(item);                                //"red" 
alert(colors.length);                       //2 

相反队列

使用 unshift()和 pop()方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项。

var colors = new Array();                     //创建一个数组 
var count = colors.unshift("red", "green");      //推入两项 
alert(count);                                   //2 
count = colors.unshift("black");                //推入另一项,此时数组顺序为"black"、"red"、"green"
alert(count);                                   //3 
 
var item = colors.pop();                       //取得最后一项 
alert(item);                                    //"green" 
alert(colors.length);                             //2 

重排序方法

  • 升序
function compare(value1, value2) {     
    if (value1 < value2) {         
        return -1;     
    } else if (value1 > value2) {         
        return 1;     
    } else {         
        return 0;     
    } 
}

var values = [0, 1, 5, 10, 15]; 
values.sort(compare); 
alert(values);  //0,1,5,10,15 
  • 降序
function compare(value1, value2) {     
    if (value1 < value2) {         
        return 1;     
    } else if (value1 > value2) {         
        return -1;     
    } else {         
        return 0;     
    } 
} 
 
var values = [0, 1, 5, 10, 15]; 
values.sort(compare); 
alert(values);    // 15,10,5,1,0 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值