`

JavaScript学习笔记1:Array类

阅读更多
JavaScript数组最多可以存放4294967295个项,如果要添加更多的项,则会发生异常。

Array对象覆盖了toString()方法和valueOf方法,返回特殊的字符串。

var aColors = ["red","green","blue"];
alert(aColors.toString());//输出red,green,blue
alert(aColors.valueOf());//输出red,green,blue

toLocaleString()方法的返回值也是由数组构成的字符串。

var aColors = ["red","green","blue"];
alert(aColors.toLocaleString());//输出red, green, blue大多数情况下toLocaleString()方法的输出值都与toString()方法的输出值相同,这里的输出值多了两个空格(在green和blue的前面各有一个),在IE6和FF都试过了,把语言区域和Internet语言首选项都设成英文国家,结果还是一样,不知道为什么,请高手指点。

join()方法,连接字符串,只有一个参数即数组项之间使用的字符串。

var aColors = ["red","green","blue"];
alert(aColors.join(","));//输出red,green,blue
alert(aColors.join("]["));//输出red][green][blue
alert(aColors.join("-我是连接字符串-"));//输出red-我是连接字符串-green-我是连接字符串-blue

split()方法,分割字符串,和join()方法相反split()是把字符串转换成数组

var sColors = "green";
aColors = sColors.split("");
alert(aColors.toString());//输出g,r,e,e,n

var sColors = "red-green-blue";
aColors = sColors.split("-");
alert(aColors.toString());//输出red,green,blue

Array对象具有两个String类具有的方法,即concat()和slice()方法。

concat()方法,参数将被附加在数组末尾

var aColors = ["red","green","blue"];
var aColors2 = aColors.concat("yellow", "purple");
alert(aColors2.toString());//输出red,green,blue,yellow, purple
alert(aColors.toString());//输出red,green,blue

slice()方法,取出数组的一部分

var aColors = ["red","green","blue","yellow", "purple"];
var aColors2 = aColors.slice(1);//截取数组从位置1个开始的所有元素(0为第一个元素)
var aColors3 = aColors.slice(1,4);//截取数组从位置1个开始到位置4之前的元素(不包括位置4)
alert(aColors2.toString());//输出green,blue,yellow,purple
alert(aColors3.toString());//输出green,blue,yellow


后进先出(LIFO),push()方法和pop()方法
push()方法用于向数组末尾添加一个或多个项
pop()方法用于删除数组的最后一项

var stack = new Array;
stack.push("red");
stack.push("green");
stack.push("yellow");
alert(stack.toString());//输出red,green,yellow
var vItem = stack.pop();
alert(vItem);//输出yellow
alert(stack.toString());//输出red,green

先进先出(FIFO),shift()方法和unshift()方法
shift()方法用于删除数组中的第一项
unshift()方法用于把一个项放在数组的第一个位置,然后把所有的项向后移动一个位置
var aColors = ["red","green","yellow"];
var vItem = aColors.shift();
alert(aColors.toString());//输出red,green,yellow
alert(vItem);//输出red
aColors.unshift("black");
alert(aColors.toString());//输出black,green,yellow

通过调用shift()和push()方法模仿队列,后进后出(LILO)

var queue = ["red","green","yellow"];
queue.push("black");
alert(queue.toString());//输出red,green,yellow,black
var sNextColor = queue.shift();
alert(sNextColor);//输出red
alert(queue.toString());//输出green,yellow,black

为数组排序,reverse()方法和sort()方法

reverse()方法,逆序排列

var aColors = ["red","green","blue","1","2","3"];
aColors.reverse();
alert(aColors.toString());//输出3,2,1,blue,green,red

sort()方法,升序排列

var aColors = ["red","green","blue","1","2","3"];
aColors.sort();
alert(aColors.toString());//输出1,2,3,blue,green,red

var aColors = ["15","2","3"];
aColors.sort();
alert(aColors.toString());//输出15,2,3
这里15排在了2和3的前面,这是因为sort()方法进行排列以前先调用toString()方法将所有值转换成字符串,然后根据字符代码比较数组项,1小于2所以15排在2前面。。解决方法如下:
var aColors = ["15","2","3"];
aColors.sort();
alert(aColors.toString());//输出15,2,3

var aColors = ["15","2","3"];
aColors.sort(compareIntegers);
alert(aColors.toString());//输出2,3,15

function compareIntegers(vNum1,vNum2){
var vNum1 = parseInt(vNum1);
var vNum2 = parseInt(vNum2);
if (vNum1 < vNum2){
return -1;
}else if (vNum1 > vNum2){
return 1;
}else{
return 0;
}
}
sort()方法可以仅可以接受一个参数,即比较函数,这里的比较函数为compareIntegers,需要自己定义。
如需要降序排列只需要先调用一次sort()方法升序排列,再调用reverse()方法把顺序反过来就可以了^_^

splice()方法
arr.splice(0,2)//删除数组中的前两项
arr.splice(2,0,"red","green")//在位置2处插入red和green
arr.splice(2,1,"red","green")//将删除位置2处的项,并插入red和green

var arr = ["1","2","3","4","5","6"];
arr.splice(0,2);
alert(arr.toString());//输出3,4,5,6

var arr = ["1","2","3","4","5","6"];
arr.splice(2,0,"red","green");
alert(arr.toString());//输出1,2,red,green,3,4,5,6

var arr = ["1","2","3","4","5","6"];
arr.splice(2,1,"red","green");
alert(arr.toString());//输出1,2,red,green,4,5,6

写的有点慢,跟不上看书的速度...
分享到:
评论

相关推荐

    JavaScript-学习笔记.pdf

    以上是JavaScript学习笔记中提到的一些核心知识点,通过对这些知识点的理解和熟练应用,可以为进一步学习和掌握JavaScript打下坚实的基础。在实际开发过程中,结合具体的项目需求,这些知识会得到更深入的拓展和应用...

    javascript学习笔记.docx

    这篇学习笔记主要涵盖了JavaScript的基础语法和客户端JavaScript的相关知识。 1. **JavaScript基本语法**: - **变量声明**:未声明的变量尝试读取时会产生错误,而写入未声明的变量会创建一个全局变量。 - **...

    JavaScript学习笔记

    本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...

    javascript学习笔记

    ### JavaScript学习笔记精要 #### JavaScript简介 JavaScript是一种强大的、多用途的脚本语言,用于增强网站的交互性和用户体验。它是由Netscape公司的Brendan Eich在1995年发明的,并且迅速成为了Web开发的标准之...

    JavaScript基础学习笔记

    JavaScript 基础学习笔记 本资源摘要信息基于黑马视频记录的学习笔记,涵盖了 JavaScript 基础知识点,包括 HTML、CSS、JavaScript、DOM、事件处理等内容。 HTML 和 CSS 基础 * HTML 结构:head、body、title、...

    JavaScript基础教程笔记

    ### JavaScript基础教程笔记知识点 #### 一、JavaScript简介 - **定义**:JavaScript是一种轻量级的编程语言,主要用于Web浏览器中的网页交互控制。 - **发展历史**:1995年由Netscape公司的Brendan Eich设计并...

    JavaScript数组对象JSON学习笔记

    ### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...

    JavaScript学习笔记.doc

    接着学习变量、数据类型、控制流语句、函数等基础知识,以及常用的内置对象和API,如Array、String、Date等。随着经验的增长,可以进一步学习面向对象编程、异步编程(回调函数、Promise、async/await)、模块化...

    《JavaScript高级编程》学习笔记之object和array引用类型

    1. 使用Array构造函数,例如: ```javascript var colors = new Array(); var colors = new Array(20); // 创建长度为20的数组 var colors = new Array("red", "blue", "green"); // 创建包含3个字符串的数组 ...

    javascript学习笔记发放2

    在这篇学习笔记中,我们将深入探讨JavaScript中的数据操作和函数作用域。 首先,我们要明白JavaScript中的数据类型分为基本数据类型(如Number、String、Boolean、Null、Undefined和Symbol)和对象数据类型(如...

    Javascript学习笔记.docx

    JavaScript是Web开发中不可或缺的一部分,它是一种轻量级的解释型编程语言,广泛应用于网页和互联网应用开发。本文将深入探讨JavaScript的一些核心知识点,包括基本语法、动态函数、DOM操作以及对象封装等。 1. ...

    JavaScript学习笔记整理之引用类型

    JavaScript中的引用类型主要包括Object、Array、Date、RegExp等,它们都是基于引用而不是值来传递的,这意味着当你改变引用类型的实例时,会影响到所有指向该实例的引用。 **1. Object类型** Object类型是最基础的...

    javascript 学习笔记

    在学习JavaScript的过程中,理解其基本概念和语法至关重要。以下是对标题和描述中提到的知识点的详细说明: 1. **文档对象模型(DOM)与Document对象**: DOM是HTML和XML文档的结构表示,Document对象是DOM的根...

    JavaScript个人学习笔记

    此外,JavaScript还有许多其他特性,如作用域、闭包、原型链、异步编程等,这些都是深入学习JavaScript时需要掌握的重要概念。随着技术的发展,现代JavaScript(如ES6及以上版本)引入了更多的新特性,如箭头函数、...

    JavaScript学习笔记之ES6数组方法_.docx

    例如,`Array.of(1)`将创建一个包含一个元素`1`的新数组,而`Array(1)`将创建一个长度为1的空数组。 接下来,是一些操作、填充和过滤数组的方法: 1. **Array.prototype.copyWithin()**: `copyWithin()`方法用于...

Global site tag (gtag.js) - Google Analytics