javascript入门之数组[新手必看]
一、定义数组。
定义数组有两个方法:
1、var arr1 = []; //定义一个空数组
2、var arr2 = [1,2,3,"str1","str2"]; //定义一个有5个元素的数组。
3、var arr3 = new Array(3); //定义一个空数组
4、var arr4 = new Array(1,2,3,"str1","str2"); //定义一个指定长度为5的数组。
二、数组元素的读和写。
arr[0]; //读取第一个数组元素
arr[0] = "str1"; //改变数组第一个元素的值。
三、稀疏数组。
稀疏数组表示从0 开始不连续索引的数组。通常数组的length代表元素中元素个数,如果数组是稀疏的,length属性值将大于元素的个数。
in 操作符用于检测元素在某位置是否存在元素,注意undefined也算存在。
如:var a1 = [,,];
var a2 = new Array(3);
0 in a1; //true,因为a[0]有undefined元素
0 in a2; //false,a2在索引0处没有元素
四、数组长度
length属性用于标志数组的长度
如:var arr = [1,2,3,4,5];
arr.length; //5 arr数组有5个元素
五、数组元素的添加和删除
push: //在数组的末尾添加一个元素
var arr = [1,2,3];
arr.push(4,5); //arr变为[1,2,3,4,5]
delete: //删除数组某个位置的元素
var arr = [1,2,3]
delete arr[1] //arr变为[1,,3]
1 in arr //false
六、数组的遍历
数组的遍历通常使用for语句来实现
var arr = [1,2,3,4,5];
for(var i = 0.i if(!a[i]) continue; //跳过null,undefined和不存在的元素 } 七、多维数组 多维数组就是数组里的元素还是数组 如:var arr = [[1,2,3],[,4,5,6]]; arr[1][1]; // 5 八、数组方法 1、 join() 用于将数组中所有元素都转化为字符串 并连接在一起,还可以自定义连接字符 var arr = [1,2,3]; arr.join(); // => "1,2,3" arr.join("=="); // => "1==2==3"; 2、 reverse() 用于将数组元素的顺序颠倒 var arr = [1,2,3]; arr.reverse(); //arr数组变为[3,2,1] 3、 sort(); //用于对数组内的元素进行排序。可以传入一个函数用作排序,如果为空,则按字母顺序排序。undifined元素排到最后 var arr = [1,2,3]; a.sort(function(a,b){ return a-b; //排序标准 负数 0 正数,比较结果先返回小的那个 }); //arr数组的值为[1,2,3] 如果第二个条件变为b-a则结果为[3,2,1] 4、concat() //用于组合一个新的数组,返回一个新的数组 var arr = [1,2,3] arrnew = arr.concat(4,5) //arrnew数组为[1,2,3,4,5] arrnew1 = arr.concat([4,5],[6,7]); //arrnew1数组为[1,2,3,4,5,6,7] 5、slice() //用于返回数组指定区间的元素组成的数组,如果输入一个参数,则是从这个参数到结束之间的数组。两个参数就是,第一个参数是起始位置,第二个参数是个数。 var arr = [1,2,3,4,5]; var arr1 = arr.slice(2); //[3,4,5] var arr2 = arr.slice(1,3); //[2,3] 6、splice() 删除或者添加元素。会改变原数组本身,相当于C#中的引用(ref),原数组是删除的元素组成的数组,返回值是剩下的元素组成的数组。 var arr = [1,2,3,4,5]; var arr1 = arr.splice(1,3); //arr为[2,3,4],返回的数组arr1为[1,5] var arr2 = [1,2,3,4,5]; var arr3 = arr2.splice(2,0,'a','b'); //从第2位开始删除,删除两个元素,然后从该位置插入'a','b';arr2为[],因为没有删除任何元素,arr3[1,2,'a','b',3,4,5] 7、 push()与pop() 在数组尾部添加或删除一个元素,添加时返回之为最后一个添加的元素,删除时。返回值为删除的那个元素。 push() 函数在数组尾部添加一个元素。 pop() 函数删除数组的最后一个元素。 var arr = [1,2,3] arr.push(4); //arr为[1,2,3,4] var arr1 = [1,2,3] arr.pop(); //arr1为[1,2] 8、unshift()和shift() shift(),unshift()与push(),pop()只不过,是在数组头部操作而非尾部。 shift() 在数组头部移除一个元素,返回值为被删元素。 unshift() 在数组头部添加一个元素,返回组为最后一个添加的元素。 var arr = [1,2,3]; var a = arr.shift(); //arr变为[2,3] a为1 var arr1 = [1,2,3]; var b = arr1.unshift([4,5]); //arr1变为[4,51,2,3],b为4 返回最后一个添加的,先添加5再添加4 9、toString()和toLocaleString() 将数组转化为字符串 var arr = [1,2,3] arr.toString(); //生成"1,2,3" 与不使用任何参数的join()是一样的。 二、ECMAScript中的数组方法 1、forEach() forEach() 从头到尾遍历数组,为每个元素调用指定的函数。 var arr = [1, 2, 3, 4, 5]; 2、map() map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组。 var arr = [1, 2, 3, 4, 5]; 3、filter() filter()过滤,返回的元素是调用数组的一个子集,过滤掉不符合条件的元素。 var arr = [1, 2, 3, 4, 5, 6]; 4、every()和some() every()当且仅当数组里的所有元素调用判定函数都返回true,它才返回true。第一次返回false就停止遍历。 some()当数组里存在一个元素调用判定函数返回true,它就返回true。第一次返回true就停止遍历。 var arr = [1, 2, 3, 4, 5, 6]; 5、reduce()和reduceRight() reduce() 将数组中的元素以指定函数进行组合,生成单个值,第一个参数是简化操作函数,第二个参数是传递给函数的初始值。最后结果是初始值再按组合函数与最后结果计算一次。第二个参数即初始值可以省略,当初始值省略就直接从第一个元素开始计算。 var arr = [1, 2, 3, 4, 5, 6]; 6、indexOf()和lastInsexOf() indexOf() indexOf()从头至少尾返回找到的第一个元素的索引。 lastIndexOf() lastIndexOf()倒序查找元素,返回第一个找到元素的索引。 var arr = [1, 2, 3, 2, 1]; 7、Array.isArray(); //判定一个对象是否数组对象 var arr = [1, 2, 3];
var sum = 0;
arr.forEach(function (value) {
sum = sum + value;
});
document.write(sum); //sum最终为15
var arr1 = arr.map(function (value) {
return value + 1;
});
document.write(arr1.join()); //arr1为[2,3,4,5,6]
var arr1 = arr.filter(function (i) { return i % 2 == 0 });
document.write(arr1.join()); //arr1为[2,4,6]
var a = arr.every(function (x) { return x > 3; });
var b = arr.some(function(y){ return y > 3; });
document.write("a的值是:" + a); //a的值是false,a中不是所有元素大于3
document.write("b的值是:" + b); //b的值是true,b中存在元素大于3
var count = arr.reduce(function (x, y) { return x + y; },0);
document.write(count);
reduceRight(); 与reduce()唯一的不同就是它从右至左选择元素进行计算。
var i = arr.indexOf(2); //从头至尾搜索,第一次遇见2是arr[1],因此返回1
var j = arr.lastIndexOf(2); //从尾至头搜索,第一次遇见2是arr[3],因此返回3
document.write(i + "
");
document.write(j);
var str = "str1";
document.write(Array.isArray(arr)); //返回true arr是数组对象
document.write(Array.isArray(str)); //返回false str是字符串,并非数组对象

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

如何使用WebSocket和JavaScript实现在线语音识别系统引言:随着科技的不断发展,语音识别技术已经成为了人工智能领域的重要组成部分。而基于WebSocket和JavaScript实现的在线语音识别系统,具备了低延迟、实时性和跨平台的特点,成为了一种被广泛应用的解决方案。本文将介绍如何使用WebSocket和JavaScript来实现在线语音识别系

WebSocket与JavaScript:实现实时监控系统的关键技术引言:随着互联网技术的快速发展,实时监控系统在各个领域中得到了广泛的应用。而实现实时监控的关键技术之一就是WebSocket与JavaScript的结合使用。本文将介绍WebSocket与JavaScript在实时监控系统中的应用,并给出代码示例,详细解释其实现原理。一、WebSocket技

如何利用JavaScript和WebSocket实现实时在线点餐系统介绍:随着互联网的普及和技术的进步,越来越多的餐厅开始提供在线点餐服务。为了实现实时在线点餐系统,我们可以利用JavaScript和WebSocket技术。WebSocket是一种基于TCP协议的全双工通信协议,可以实现客户端与服务器的实时双向通信。在实时在线点餐系统中,当用户选择菜品并下单

如何使用WebSocket和JavaScript实现在线预约系统在当今数字化的时代,越来越多的业务和服务都需要提供在线预约功能。而实现一个高效、实时的在线预约系统是至关重要的。本文将介绍如何使用WebSocket和JavaScript来实现一个在线预约系统,并提供具体的代码示例。一、什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工

JavaScript和WebSocket:打造高效的实时天气预报系统引言:如今,天气预报的准确性对于日常生活以及决策制定具有重要意义。随着技术的发展,我们可以通过实时获取天气数据来提供更准确可靠的天气预报。在本文中,我们将学习如何使用JavaScript和WebSocket技术,来构建一个高效的实时天气预报系统。本文将通过具体的代码示例来展示实现的过程。We

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest

用法:在JavaScript中,insertBefore()方法用于在DOM树中插入一个新的节点。这个方法需要两个参数:要插入的新节点和参考节点(即新节点将要被插入的位置的节点)。

JavaScript是一种广泛应用于Web开发的编程语言,而WebSocket则是一种用于实时通信的网络协议。结合二者的强大功能,我们可以打造一个高效的实时图像处理系统。本文将介绍如何利用JavaScript和WebSocket来实现这个系统,并提供具体的代码示例。首先,我们需要明确实时图像处理系统的需求和目标。假设我们有一个摄像头设备,可以采集实时的图像数
