第7章 JavaScript数组

本文全面介绍了JavaScript中数组的创建、元素的添加与删除、转换、排序等操作方法,包括push、pop、shift、unshift、splice、slice、sort等函数的使用技巧。

创建空数组

var obj = new Array();

创建指定长度的数组

var obj = new Array(Size);

Size指明新建的数组有多少个元素。数组长度指定为Size,仅指定长度但没有实际填充元素及其数据的数组将得不到数据存储空间。例如,某个人向酒店约定使用5个房间,但一直没去用,也没到过酒店。那5个房间实际上不会被分配,仅当真正去使用房间时才会发生分配活动。这与C语言不一样。

指定数组元素创建数组

var obj = new Array(元素1, 元素2, ..., 元素N);

直接创建数组

var students = ["Peter", "Tom", "Vicky", "Jet"];

添加与删除数组元素

var students = new Array();
students.push("Lily");// 数组名.push(元素1, 元素2, ..., 元素N)
students.push("Kate", "HanMei", "LuBan");// 一次添加多个元素
————————————————————————————
var names = Array("李莉", "杨杨");
delete names[0];// delete 数组名[下标]

数组转换为字符串

var names = ["Peter", "Vicky", "LuWang", "HuaLi"];
document.write(names.toString());// 数组名.toString();
——————浏览器显示———————
Peter,Vicky,LuWang,HuaLi

字符串连接join()

var names = ["Peter", "Vicky", "LuWang", "HuaLi"];
document.write(names.join("-"));// 数组名.join(分隔符);
————————————浏览器显示————————————
Peter-Vicky-LuWang-HuaLi

删除数组首尾元素shift()/pop()

堆栈有先进后出(FILO)的特点,pop通常结合push方法一起使用。

数组名.shift(); 删除数组首元素,并返回其引用。

数组名.pop(); 删除数组尾元素,并返回其引用。

<script type="text/javascript">
    var queue = new Array();
    function client(name) {
        this.name = name;
        this.ticket = NaN;
    }
    queue.push(new client("Lily"), new client("Peter"), new client("Vicky"), new client("Tome"), new client("Jackson"));
    tickets = 4;
    while (queue.length != 0 && tickets != 0) {
        var current = queue.shift(); // 队首已经买到票离开队列
        current.ticket = tickets;
        document.write("<br>已售:" + current.name + ",流水号" + current.ticket);
        tickets--;
    }
    document.write("<br>销售停止,目前队里有" + queue.length + "人,和" + tickets + "张票!");
</script>

 

<script type="text/javascript">
    var appleBox = new Array();
    appleBox.push("苹果1","苹果2","苹果3","苹果4","苹果5","苹果6");
    while (appleBox.length != 0) {
        var handle = appleBox.pop(); // 从苹果箱中弹出一个排在最后面的苹果
        document.write("<br>已发:" + handle);
    }
    document.write("<br>苹果已经分光~");
</script>

在数组头部添加元素

与pop()在数组尾部添加元素对应的是在数组头部添加元素:

数组名.unshift([元素1, [元素2, [元素3, ..., [元素N]]]]);
<script type="text/javascript">
    var queue = new Array("A", "B", "C");
    document.write("<br>原数组:" + queue);
    queue.unshift("D", "E");
    document.write("<br>在前端添加“D”“E”两元素后:" + queue);
</script>

扩充数组

数组名.concat([item1, [item2, [item3, ..., [itemN]]]]);
◆item:可选项,要连接到“数组名”引用的数组末尾的其他项目。可以是:
1.数组对象 2.单个数组元素 3.其他JavaScript对象
<script type="text/javascript">
    var queueA = new Array("顾客1", "顾客2", "顾客3", "顾客4", "顾客5");
    var queueB = new Array("顾客A", "顾客B", "顾客C", "顾客D", "顾客E");
    var qa = queueA.join("-");
    var qb = queueB.join("-");
    document.write("窗口前的两个队伍:");
    document.write("<br><li>" + qa);
    document.write("<br><li>" + qb);
    queueA = queueA.concat(queueB);
    qa = queueA.join("-");
    document.write("<br>将队伍B合并到队伍A:");
    document.write("<br><li>" + qa);
</script>

切分、插入、替换、结合数组数据

数组名.splice(start, deleteCount, [item1, [item2, ..., [itemN]]]);
•start:从数组中剪切的起始位置下标索引号
•deleCount:将从数组中切取的元素个数
•item:可选项,在切取处插入原数组切入点开始的一个或多个元素
■返回切取元素组成的数组对象的引用
<script type="text/javascript">
    var queueA = new Array();
    queueA.push("学生A", "学生B", "学生C", "学生D", "学生E", "学生F");
    document.write("<li>原来的队伍A:<br>" + queueA);
    var queueB = queueA.splice(2, 3);
    document.write("<br><li>调整后的队伍A:<br>" + queueA);
    document.write("<br><li>新建的队伍B:<br>" + queueB);
    queueA.splice(1, 0, "学生1", "学生2");
    document.write("<br><li>添加后的队伍A:<br>" + queueA);
</script>

获取数组中的一部分元素

数组名.slice(start, [end]);
◆end:可选项,end-start=复制的元素个数
<script type="text/javascript">
    var queueA = new Array();
    queueA.push("学生A", "学生B", "学生C", "学生D", "学生E", "学生F");
    queueA = queueA.slice(1, 4);
    document.write(queueA);
</script>

颠倒数组元素reverse()

<script type="text/javascript">
    var queue = new Array("甲", "乙", "丙", "丁");
    var newQueue = queue.reverse();
    document.write("<li>翻转前:" + queue + "<br><li>翻转后:" + newQueue);
</script>

数组元素排序

数组名.sort([sortfunction]);
◆sortfunction:可选项,如果省略就按ASCII字符顺序进行升序排列。
它是一个回调函数,这个回调函数有2个参数,它必须返回下列值之一:
负值,零,正值
<script type="text/javascript">
    var years = new Array(1985, 1970, 1999, 1998, 2008, 1963);
    function sortFunc(arg1, arg2) {
        if (arg1 < arg2) {
            return -1;
        } else if (arg1 > arg2) {
            return 1;
        }
        return 0;
    }
    var sorted = years.sort(sortFunc);
    document.write("排序前的各年份:<li>" + years);
    document.write("<br>排序后的各年份:<li>" + sorted);
</script>

由结果可知,sort()排序数组后,原数组元素就都排序了,没有创建一个新排序的数组。

将对象转换为本地字符串toLocaleString()

obj.toLocaleString();
◆obj属于:Array、Date、Number、Object类型的对象。
它将obj对象的值转换为本地字符串,并返回该字符串的引用。

toLocaleString方法作用是将一个对象转换为本地字符串,主要针对日期对象。全球范围内日期的表示形式有很多种。本地时间的表示格式由用户在“控制面板”的“区域设置”所作的设置来确定。

<script type="text/javascript">
    var date = new Date();
    document.write(date.toLocaleString());
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

itzyjr

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

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

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

打赏作者

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

抵扣说明:

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

余额充值