摘要:在JS中数组被划分为对象,也就是说,它和一般对象一样,都由其属性和方法组成,在很多应用中,我们可以看到关于数组使用的例子,学习一些编程语言的读者知道,数组与相关的数据结构操作有着密切关系,如各种排序算法、二叉树和图的操作、特殊值的查找以及常见的增删改操作等。可以说数组不管对哪种编程语言来说都是一种非常重要的数据结构。字符串在JS中也是一种非常重要的数据结构,其实它也是数组的一种,只是它的元素类型是字符串,它有自己的一套操作方法。以下内容主要绍介与数组和字符串相关的一些常用操作方法。
一、数组
数组在JS中作为对象的一种,其最常用的属性是length即数组的长度值,这个值在数组的操作中经常用到,它可以动态地反映数组中的元素个数,通常用在循环中,用于判断某个值是否超出了数组的长度范围,以此来决定循环的结束条件。通常创建数组有三种方法:
1: 常规方式:var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
2: 简洁方式:
var myCars=new Array("Saab","Volvo","BMW");
3: 字面:
var myCars=["Saab","Volvo","BMW"];
对于其常用的方法,与其相关的操作有密切关系,由于对数组来说,可能最常见的操作主要有对元素的删除、插入、查找、排序等,所以在JS中与这些操作对应的方法有pop()、push()、shift()、unshift()、slice()、splice()、sort()等。下面分别简要地说明一下这些方法在JS中的使用。
- pop()和push()方法:学过《数据结构》的读者应该知道这两个方法和“栈”这种数据结构的方法是一样的,push()是将数据压入栈中,pop()是把元素从栈中取出,在JS中这两个方法的操作过程其实与栈的push()和pop()方法原理是相同的,push()是把一个数据元素插入到数组的尾部,而pop()的操作过程正好相反,即把数组中的最后一个元素删除。
- shift()和unshifth()方法:这两个方法和push()和pop()方法一样,都是与删除插入相关的一组操作,只不过其操作的位置是在数组的头部进行,shift()就把数组的第一个元素删除,而unshift()是在数组的第一个位置插入一个元素。
- slice()方法:当在这个方法中指定一个参数时如slice(2);这时它会返回数组中下标为2之后的所有元素,这个方法我觉得对于要获取一个数组中的子数组的情况还是非常有用的。
- splice()方法:这个方法功能比较强大,我们可以通过设置参数个数以及参数值的不同,就可以通过这个函数对数组的删除和插入操作,而且删除和插入的元素个数可以非常灵活。如当只设置有一个参数时如:splice(3);它会取出数组中的前3个元素;当设置两个参数时如:splice(2,3);会把数组中从下标为2开始的三个元素删除(包括下标2);当设置三个参数时如:splice(2,3,1);会先把数组中从下标为2开始的三个元素删除(包括下标2),然后再把1插入到刚才被元素的位置,这个操作相当于元素的替换;但如果这样设置splice(2,0,1);其实就是把1值插入到下标为2的位置。所以综上所述,这个函数可以对数组进行插入、删除和替换操作。
- sort()方法:该方法用于对数组的排序,对字符数组,按字母的字典顺序升序排序,对具体有两位以上的数进行排序时,在该方法里还要嵌套另一方法如下所示:
二、字符串
字符串比较一点,根据创建的方式不同,它可以是普通的字符串,也可以是一个对象,例如这样的创建方式就是一个普通的字符串:var str="abcd";而用var str=new String("abcd");的创建方式时,str就是一个对象。在JS中字符串常用的属性也是length这点和普通的数组一样。但它所用到的方法又和数组的有些差别。对字符串操作时常用的方法有charAt()、indexOf()、concat()、substring()、split()等。
- charAt()方法:根据指定的索引值获取字符串中的字符
- indexOf():用于获取一个字符在字符串中的索引
- concat():返回两个字符串连接后的新字符串
- substring():返回一个子字符串,当只设置一个参数时,如substring(2);会返回索引为2之后的元素值
- split():返回一个删除指定字符后的新字符串
把border-bottom-color转换成以驼峰命名法的字符串。
主要代码如下:
function(str){
str.split("-");
for(var i=1;i<str.length;i++){
str[i]=str[i].charAt(0).toUpperCase()+str[i].substring(1);
}
str.join("");
}
三、总结
数组和字符串在实际应用中非常广泛,具有很强的灵活性,要熟练掌握其中的规律,必须要不断深化对相关知识点的理解。