javascript循环数组有什么方法_javascript循环数组有哪些方法
数组是元素的一个有序组合。在JavaScript中,数组可以使用正式的对象表示法来创建,或者可以使用直接量表示法来初始化。大家知道javascript循环数组有哪些方法吗?下面由店铺为大家整理的javascript循环数组的方法,希望大家喜欢!
javascript循环数组的方法
1、循环遍历数组
问题:想要很容易地访问数组的所有元素。
for循环可以用来访问数组的每一个元素。数组从0开始,而且数组属性length用来设定循环结束。
2、按顺序存储和访问值
问题:想要以这样一种方式来存储值,可以按照存储它们的方式来顺序访问值;
解决方案:
要按照接受值的顺序来存储和访问值,创建一个先进先出(FIFO)的队列。使用JavaScript Array对象的push方法,向队列添加项,并且用shift来获取项:
Array push方法创建一个新的数组元素,并且将其添加到数组的末尾:
queue.push("first");
每次压入一个元素,数组元素的计数自增。
Array shift方法从数组前面提取数组元素,将其从数组中删除,并且返回该元素:
var elem = queue.shift();
对于每一个shift操作的元素,数组元素会自减,因为shift除了返回该项,还会修改数组。
3、以相反的顺序存储和访问值
问题:想要以一种方式来存储值,即以相反的顺序访问值,先访问最近存储的值,也就是一个后进先出(LIFO)的栈。
解决方案:
要以相反的顺序存储值,创建一个LIFO栈。使用JavaScript Array对象的push方法来想栈添加项,使用pop方法来获取项
讨论:
栈也是一个数组,其中每个新添加的元素位于栈的顶部,并且按照后进先出的顺序获取。
Array push方法创建一个新的元素,并将其添加到数组的尾部:
stack.push("first");
每次压入元素的时候,数组元素的计数都会自增。
Array pop方法从数组的尾部提取数组元素,将其从数组中移走,并返回元素:
var elem = stack.pop();
每次弹出一个元素的时候,数组元素计数会自减,因为弹出也修改了数组。
4、在数组中搜索
问题:想要在数组中搜索一个特定值,如果到的话,获取该数组元素的索引。
解决方案:
使用新的(ECMAScript 5)Array对象方法indeOf和lastIndexOf:
尽管浏览器中有时候对indexOf和lastIndexOf都是支持的,但是,这只是ECMAScript 5的版本中正式化了。这两个方法都接受一个搜索值,然后,将其与数组中的每个元素比较。如果到了该值,两个方法都返回该数组元素的一个索引。如果没有到值,返回-1.indexOf返回到的第一个元素,lastIndexOf返回到的最后一个元素。
参见:
并非所有的浏览器都支持indexOf和lastindexOf,针对这一函数的解决方案:
5、对每个数字元素应用一个函数
问题:想要使用一个函数来检查一个数组值,如果满足给定的条件,就替换它。
解决方案:
使用新的ECMAScript 5 Array对象的forEach方法,来针对每个数组元素都绑定一个回调函数:filter过滤对象数组
讨论:
forEach方法接受一个参数,这个参数是个函数。该函数自身有3个参数:数组元素,元素的索引和数组。
参见:
大多数浏览器都支持forEach。然而,对于那些不支持的浏览器,可以使用Array.prototype属性来模拟forEach行为。
6、创建一个过滤后的数组
问题:想要过滤一个数组中的元素的值,并且把结果赋给一个新的数组。
解决方案:
使用Array对象的filter方法:
讨论:
filter方法是ECMAScript 5新添加的方法,该方法将一个回调函数应用于每一个数组元素。作为参数传递给filter方法的函数返回一个布尔值,true或false,根据测试数组元素的结果来返回。这个返回值决定了该数组元素是否添加到一个新的数组中,如果函数返回true,将会添加;否则,将不会添加。
参见:
对于不支持filter方法的浏览器的模拟实现
7、验证数组内容
问题:想要确保一个数组满足某个条件。
解决方案:
使用Array对象的every方法来检查给定条件的每个元素。
Array对象的every和some方法都是最新的ECMAScript 5 Array方法,不同之处在于当使用every方法的时候,只要该函数返回一个false值,处理就会结束,并且该方法返回false。而some方法将继续测试每一个数组元素,知道回调函数返回true。此时不再验证其他的元素,该方法返回true。如果回调函数测试了所有的元素,并且任何时候不会返回true,some方法返回false。
参见:
对于不支持every和some的浏览器的实现方式
javascript字符串的使用方法
一、概述
字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多...。JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等。
当前的大部分浏览器也能从强大的正则表达式获益,因为它极大地简化了大量的字符串操作任务,不过它也需要你克服一条有些陡峭的学习曲线。在这里,主要是介绍字符串本身的一些操作,正则表达式会在以后的随笔中涉及。
二、字符串的创建
创建一个字符串有几种方法。最简单的是用引号将一组字符包含起来,可以将其赋值给一个字符串变量。
var myStr = "Hello, String!";
可以用双引号或单引号将字符串包含,但要注意,作为界定字符串的一对引号必须是相同的,不能混用。
像var myString = "Fluffy is a pretty cat.'; 这样的声明就是非法的。
允许使用两种引号,使得某些操作变得简单,比如将一种嵌入另外一种:
document.write("");
我们在上面脚本创建了几个字符串,但本质上,它们并不是真正的字符串对象,准确地说,它们是字符串类型的值。要创建一个字符串对象,可使用如下语句:var strObj = new String("Hello, String!");
使用typeof运算符查看会发现,上面的myStr类型为string,而strObj类型为object。
如果想知道字符串的长度,使用其length属性:string.length。
得到字符串的指定位置的字符使用方法:string.charAt(index);
三、字符串的拼接
问题:
将两个或多个字符串拼接为一个大的字符串
解决方案:
非常简单,就用一个"+"将两个字符串"相加":
var longString = "One piece " + "plus one more piece.";
要将多个字符串累积为一个字符串,还可以使用"+="操作符:
var result = "";
result += "My name is Anders"
result += " and my age is 25";
要在字符串中添加换行符,需要使用转义字符"\n":
var confirmString = "You did not enter a response to the last " +
"question.\n\nSubmit form anyway?";
var confirmValue = confirm(confirmString);
但这种方法只能用在像警告、确认对话框之类的情况下,如果将这段文本作为HTML内容呈现,就无效了,此时用"
"代替它:
var htmlString = "First line of string.
Second line of string.";
document.write(htmlString);
String对象还提供了方法concat(),它完成与"+"相同的功能:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。