`
rcatws
  • 浏览: 5692 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JavaScript 笔记 11 - 数组(Array)对象

 
阅读更多

JavaScript Array(数组)对象
数组对象的作用是:使用单独的变量名来存储一系列的值。
数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。
数组中的每个元素都有自己的的ID,以便它可以很容易地被访问到。

创建数组
语法

new Array();
new Array(size);
new Array(element0, element1, ..., elementn);

返回值
返回新创建并被初始化了的数组。
如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。
当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为 undefined 的数组。
当其他参数调用 Array() 时,该构造函数将用参数指定的值初始化数组。
当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。

 

字面

var myCars = ['Saab','Volvo','BMW'];

 
在一个数组中你可以有不同的对象
所有的JavaScript变量都是对象。数组元素是对象。函数是对象。
因此,你可以在数组中有不同的变量类型。

 

对象属性

属性 描述
constructor 返回对创建此对象的数组函数的引用。
length 设置或返回数组中元素的数目。
prototype 使您有能力向对象添加属性和方法。

 

对象方法

方法 描述
concat() 连接两个或更多的数组,并返回结果。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop() 删除并返回数组的最后一个元素。
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reverse() 颠倒数组中元素的顺序。
shift() 删除并返回数组的第一个元素。
slice() 从某个已有的数组返回选定的元素。
sort() 对数组的元素进行排序。
splice() 删除元素,并向数组添加新元素。
toSource() 返回该对象的源代码。
toString() 把数组转换为字符串,并返回结果。
toLocaleString() 把数组转换为本地数组,并返回结果。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
valueOf() 返回数组对象的原始值。

 

数组创建测试

//创建数组
var hege = new Array(4);

document.write('<p>' + 'hege.length = ' + hege.length + '</p>');

document.write('<p>' + 'typeof hege[0] = ' + typeof hege[0] + '</p>');

try
{
	//数组赋值
	hege[0] = 'Cecilie';
	hege[1] = 'Lone';
	hege[2] = 'Emil';
	hege[3] = 'Tobias';
	hege[10] = 15.36;		//超过原定义的数组长度
}
catch(err)
{
	//未发生异常
	txt = '出错信息' + err.message
	document.write('<p>' + txt + '</p>');
}

document.write('<p>' + 'hege = ' + hege.toString() + '</p>');

document.write('<p>' + 'typeof hege[4] = ' + typeof hege[4] + '</p>');
document.write('<p>' + 'typeof hege[10] = ' + typeof hege[10] + '</p>');
document.write('<p>' + 'hege.length = ' + hege.length + '</p>');

 

 

函数测试代码

//函数concat(arrayX, arrayX,...,arrayX),arrayX可以是具体的值,也可以是数组对象。可以是任意多个。返回一个新的数组。
var a = [1, 2, 3];
var b = a.concat(4,5);

document.write('<p>' + 'a = ' + a + '</p>');
document.write('<p>' + 'b = ' + b + '</p>');
document.write('<p>' + 'a.concat(4,5) = ' + a.concat(4,5) + '</p>');

var c = new Array().concat(a, b);
document.write('<p>' + 'c = ' + c + '</p>');

var arr1 = new Array(3);
arr1[0] = 1;
arr1[1] = 2;
arr1[2] = 3;

var arr2 = new Array(3);
arr2[0] = 'James';
arr2[1] = 'Adrew';
arr2[2] = 'Martin';

var arr3 = [true, false];

document.write('<p>' + 'arr1.concat(arr2, arr3) = ' + arr1.concat(arr2, arr3) + '</p>');

//函数join([separator]), separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。返回字符串。
var arr1 = new Array(3);
arr1[0] = 'George';
arr1[1] = 'John';
arr1[2] = 'Thomas';
	
document.write('<p>' + 'arr1.join() = ' + arr1.join() + '</p>');
document.write('<p>' + 'arr1.join("\\") = ' + arr1.join('\\') + '</p>');

//函数pop(),返回对象最后一个元素。
var arr1 = new Array(3);
arr1[0] = 'George';
arr1[1] = 'John';
arr1[2] = 'Thomas';

document.write('<p>' + 'arr1 = ' + arr1 + '</p>');
document.write('<p>' + 'arr1.pop() = ' + arr1.pop() + '</p>');
document.write('<p>' + 'arr1 = ' + arr1 + '</p>');

//函数push(newelement1[,newelement2,...,newelementX]), 在数组尾部添加元素。返回值,把指定的值添加到数组后的新长度。
var arr1 = new Array(3);
arr1[0] = 'George';
arr1[1] = 'John';
arr1[2] = 'Thomas';

var arr2 = new Array(3);
arr2[0] = 'James';
arr2[1] = 'Adrew';
arr2[2] = 'Martin';	

document.write('<p>' + 'arr1 = ' + arr1 + '</p>');
document.write('<p>' + 'arr1.push("Victor", arr2) = ' + arr1.push('Victor', arr2) + '</p>');
document.write('<p>' + 'arr1 = ' + arr1 + '</p>');
document.write('<p>' + 'arr1 = ' + arr1[4] + '</p>');

//函数reverse(), 用于颠倒数组中元素的顺序。
var arr = new Array(3);
arr[0] = 'George';
arr[1] = 'John';
arr[2] = 'Thomas';

document.write('<p>' + 'arr = ' + arr + '</p>');

arr.reverse();
	
document.write('<p>' + 'arr.reverse() = ' + arr + '</p>');

//函数shift(), 用于把数组的第一个元素从其中删除,并返回第一个元素的值。返回值, 数组原来的第一个元素的值。
var arr = new Array(3);
arr[0] = 'George';
arr[1] = 'John';
arr[2] = 'Thomas';

document.write('<p>' + 'arr.shift() = ' + arr.shift() + '</p>');
document.write('<p>' + 'arr = ' + arr + '</p>');

//函数slice(start [,end])。 start, 规定从何处开始选取。 end, 规定从何处结束选取。
var arr = [90, 91, 92, 93, 94, 95, 96, 97, 98, 99];

document.write('<p>' + 'arr.slice(1) = ' +  arr.slice(1) + '</p>');
document.write('<p>' + 'arr.slice(100) = ' +  arr.slice(100) + '</p>');
document.write('<p>' + 'arr.slice(-1) = ' +  arr.slice(-1) + '</p>');
document.write('<p>' + 'arr.slice(1, 5) = ' +  arr.slice(1, 5) + '</p>');
document.write('<p>' + 'arr.slice(5, 5) = ' +  arr.slice(5, 5) + '</p>');
document.write('<p>' + 'arr.slice(-10, 5) = ' +  arr.slice(-10, 5) + '</p>');
document.write('<p>' + 'arr.slice(-10, -5) = ' +  arr.slice(-10, -5) + '</p>');
document.write('<p>' + 'arr.slice(-10, -1) = ' +  arr.slice(-10, -1) + '</p>');
document.write('<p>' + 'arr.slice(-10, 1) = ' +  arr.slice(-10, 1) + '</p>');	

//函数sort(sortby), 用于对数组的元素进行排序。返回值, 对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
var arr = new Array(6);
arr[0] = 'George';
arr[1] = 'george';
arr[2] = 'Adrew';
arr[3] = 'adrew';
arr[4] = 'a99drew';
arr[5] = '10Tank';

document.write('<p>' + 'arr = ' + arr + '</p>');
document.write('<p>' + 'arr.sort() = ' + arr.sort() + '</p>');

var arr = new Array(6);
arr[0] = 15;
arr[1] = 1;
arr[2] = 385;
arr[3] = 810;
arr[4] = 259;
arr[5] = 1000;

var arr1 = new Array(6);
arr1[0] = '15';
arr1[1] = '1';
arr1[2] = '385';
arr1[3] = '810';
arr1[4] = '259';
arr1[5] = '1000';

document.write('<p>' + 'arr.sort() = ' + arr.sort() + '</p>');
document.write('<p>' + 'arr1.sort() = ' + arr1.sort() + '</p>');

function sortNumber(a, b)
{
	return a - b;
}

document.write('<p>' + 'arr.sort(sortNumber) = ' + arr.sort(sortNumber) + '</p>');
document.write('<p>' + 'arr1.sort(sortNumber) = ' + arr1.sort(sortNumber) + '</p>');

//函数splice(index, howmany [, item1,...,itemX]), 向/从数组中添加/删除项目,然后返回被删除的项目。
//index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
//howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
//item1, ..., itemX 可选。向数组添加的新项目。
var arr = new Array(6);

arr[0] = 'George';
arr[1] = 'John';
arr[2] = 'Thomas';
arr[3] = 'James';
arr[4] = 'Adrew';
arr[5] = 'Martin';

document.write('<p>' + 'arr = ' + arr + '</p>');
arr.splice(2, 0, 'William');
document.write('<p>' + 'arr = ' + arr + '</p>');
arr.splice(2, 1);
document.write('<p>' + 'arr = ' + arr + '</p>');
arr.splice(2, 3, 'William');
document.write('<p>' + 'arr = ' + arr + '</p>');

//函数toString(), toLocaleString()
var arr = new Array(6);

arr[0] = 'George';
arr[1] = 'John';
arr[2] = 'Thomas';
arr[3] = 'James';
arr[4] = '导弹';
arr[5] = 'Martin';

document.write('<p>' + 'arr.toString() = ' + arr.toString() + '</p>');
document.write('<p>' + 'arr.toLocaleString() = ' + arr.toLocaleString() + '</p>');	

//函数unshift(newelement1,newelement2,....,newelementX), 可向数组的开头添加一个或更多元素,并返回新的长度。
var arr = new Array(3);
arr[0] = 'George';
arr[1] = 'John';
arr[2] = 'Thomas';

document.write('<p>' + 'arr.unshift("Martin", 1526.57) = ' + arr.unshift('Martin', 1526.57) + '</p>');
document.write('<p>' + 'arr = ' + arr + '</p>');	

 

 

总结整理

  • 创建的数组未赋值前,typeof为undefined。数组创建后可以任意添加。
  • 数组对象可以被重新赋值为其他对象,赋值后不能作为数组操作。JavsScript的其他对象也应该有相似我特点。
  • 函数join(), toString()都是把数组转换为字符串,join()可以指定元素之间的分隔符,toString()函数使用默认分隔符。
  • 函数pop(), shift() 都是从数组中删除一个元素,并返回删除的元素。pop()为删除最后一个元素,shift()为删除第一个元素。
  • 函数push(), unshift() 都是向数组中添加一个或多个元素。push()在数组尾部添加,unshift()在数组开头添加。
  • 函数splice(), 可以删除指定多个元素,同时也可以在指定位置添加元素。

 

分享到:
评论

相关推荐

    [笔记]认识Javascript数组

    个人多年前学习笔记,Javascript数组,初学者可以看看,高手就不用看了

    JavaScript-Array-Helper

    JavaScript-Array-Helper 在ES6 JavaScript中,您将不得不学习新的数组帮助程序,而不是替换循环,而是要有另一种方法来解决您的代码,或者以更有组织的方式减少代码。怎么跑? node for-each-example.js 笔记...

    javascript学习笔记(五) Array 数组类型介绍

    javascript学习笔记之Array 数组类型介绍,需要的朋友可以参考下

    JavaScript学习笔记之数组基本操作示例

    本文实例讲述了JavaScript学习笔记之数组基本操作。分享给大家供大家参考,具体如下: 一、数组定义 1、定义 vara=[1,2,3] vara=newArray(1,2,3); 2、长度 返回长度 [removed] vara=[1,2,3,4,5,6]; alert&#40;a...

    javascript学习笔记(二)数组和对象部分

    javascript对象部分 一:基础部分 ...它们是Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、Error 以及 String 对象。 4.对象只是一种特殊的数据。对象拥有属性和方法。 Ja

    JavaScript笔记

    D []--实例化一个空数组对象 实例化空数组:var arr=[]; 特点:元素个数不限定,元素类型不限制 13.Array 对象的常用方法: |--1.join()方法--用于把数组中的所有元素放入一个字符串 | eparato表示要使用的...

    Javascript学习笔记之数组的构造函数

    数组的构造函数 由于数组的构造函数在处理参数时的不确定性,因此强烈建议使用 [] 符号来创建一个新数组。 [1, 2, 3]; // Result: [1, 2, 3]new Array(1, 2, 3); // Result: [1, 2, 3][3]; // Result: [3]new Array...

    JavaScript学习笔记之ES6数组方法

    ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了)。上一次标准的制订还是2009年出台的ES5。目前ES6的标准化工作正在进行中,...

    javascript类型系统 Array对象学习笔记

    数组是一组按序排列的值,相对地,对象的属性名称是... 与Javascript中的大多数对象一样,可以使用new操作符连同Array()构造函数,或者通过使用字面量语法来创建数组对象 【1】使用Array构造函数(在使用Array构造函数

    using-javascript-array-methods:一个教育网站,可为编码人员提供有关数组方法如何在javascript中工作的见解。 欢迎捐款! 请添加您的!

    使用JavaScript数组方法 该站点是有关如何在javascript中使用map()和forEach()方法的简单演示。 动机 当我第一次使用,我发现了javascript方法map()来遍历JSX中的数据。 以前有一些用JavaScript编写功能代码的经验,...

    eslint-plugin-require-trailing-comma:ESLint 插件需要在数组和对象上使用尾随逗号

    这是一个具有一致行结尾的数组和对象 var array = [ 1, 2, 3, ]; var object = { a: 1, b: 2, c: 3, }; 这是一个行尾不一致的数组和对象 var array = [ 1, 2, 3 ]; var object = { a: 1, b: 2, c: 3 }...

    javascript学习笔记.docx

    11) JavaScript中面向对象的特性: a) 实例属性:在构造函数创建或初始化的属性。 b) 实例方法:在构造函数中把原型对象中的一个属性设为函数来实现。 c) 类属性:构造函数本身的属性。 d) 类方法:用合适的函数作为...

    JavaScript 笔记二 Array和Date对象方法

    JavaScript的对象基础 本篇主要讲解本地对象Array和Date的各种方法。 一种面向对象语言需要向开发者提供四种基本能力: (1) 封装——把相关的信息(无论数据或方法)存储在对象中的能力。 (2) 聚集——把一个对象...

    string-array:字符串数组类

    字符串数组 字符串数组类。 为什么不直接使用原生Arrays ? 一个StringArray 防止将非字符串原语添加到array 提供限制string长度的选项允许花哨的索引花式花式===获取获取sget 重新获得获取获取设置方法放我设置设置...

    JS随机洗牌算法之数组随机排序

    推荐阅读:JavaScript学习笔记之数组的增、删、改、查 JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组随机排序 洗牌算法是一个比较形象的术语,本质上让一个数组内的元素随机排列。举例来说,我们有一...

    javascript入门笔记

    Javascript Basic 1、Javascript 概述(了解) Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS...

    javascript框架设计读书笔记之数组的扩展与修复

    因为IE7在数组对象上使用indexOf会报错,所以需要重写一个兼容性的。 代码如下: Array.prototype.lastIndexOf(item,index){  var n = this.length,i = (index==null||index&gt;n-1)?n-1:index;  if(i ...

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

    本文给大家分享我的javascript高级编程学习笔记之object和array引用类型,涉及到javascript引用类型相关知识,大家一起看看把。 1. Object类型  大多数引用类型值都是Object类型的实例;而且Object也是ECMAScript中...

    javascript从入门到跑路—–小文的js学习笔记(10)——数组(一维数组、二维数组以及三维数组)和冒泡排序

    ** javascript从入门到跑路—...两种创建数组的语法: 1、构造函数的形式: new Array()  2、创建字面量的形式: [ ] 那么下面我们来分别举个栗子: 第一种创建数组的方法举例 栗2: 用创建字面量的形式: 补充: 获

Global site tag (gtag.js) - Google Analytics