数组与字符串

数组

  • isArray() 判断是否为Array类型

插入与删除

  • push() 将数据项插入到数组的后面
  • unshift() 将数据项插入到数组的前面
  • pop() 将数组的最后一项删除并返回
  • shift() 将数组的第一项删除并返回

排序

  • reverse(),逆序排列
  • sort(),顺序排列,默认是按照字符串顺序,若是按照数字大小排列就要设定方法
function sortNumber(a,b){
    return a-b;
}
arr.sort(sortNumber);//调用

连接、更改数组

  • concat() 用于连接两个或多个数组,不会改变现有数组,仅仅会返回被连接的数组的一个副本
  • slice() arrayObject.slice(start, end) 返回一个新的数组,范围是[start, end),不会改变现有数组
  • splice() arrayObject.splice(index, howmany, item1,…,itemn) 可删除从index处开始的howmany个元素,并用参数列表中的item替换掉删除的元素,会改变原数组

位置方法

  • indexOf() .indexOf(searchvalue,fromindex) 从前向后查找位置索引
  • lastIndexOf() 从后向前查找位置索引 
    若找不到则返回-1

常用的遍历方法

  • filter() 每一项运行给定函数,返回true的项
  • forEach() 每一项运行给定函数,无返回

字符串

  • toString() String类型的方法,null和undefined分别转换为 ‘null’和’undefined

拼接、更改字符串

  • concat() 拼接字符串,不会改变原始字符串
  • slice() .slice(start, end) 返回一个新的数组,范围是[start, end),如果没有第二个参数则默认字符串的结束位置为end;当第一个参数大于第二个参数时,将返回空字符串。不会改变原始字符串
  • substring() 基本同上,但当第一个参数大于第二个参数时,默认会交换两个参数的位置,然后返回字符串
  • substr() .substr(start, length),第一个参数为负数则从字符串尾部开始计算,不会改变原始字符串
  • split() 分割字符串,返回一个数组,可以接收一个或者两个参数,第一个参数表示分隔符,可以是字符串或者正则表达式。第二个参数表示返回字符串的长度。

位置方法

  • indexOf() .indexOf(searchvalue,fromindex) 从前向后查找位置索引
  • lastIndexOf() 从后向前查找位置索引 
    若找不到则返回-1
  • charAt() .charAt(index) 接受一个参数表示字符位置,返回该位置的字符
  • charCodeAt() .charCodeAt(index) 接受一个表示字符位置的参数,返回该位置字符的编码

大小写转换

  • toLowerCase() 把字符串转换为小写
  • toUpperCase() 把字符串转换为大写

字符串匹配

  • match() 接受一个参数,正则表达式或者RegExp对象。一次返回所有符合的元素。
  • search() 接受的参数于match相同,返回第一个匹配项的索引。没有匹配项则返回-1
  • replace() 字符串替换,接受两个参数,第一个参数可以是RegExp对象或者字符串,第二个参数可以是字符串或者函数

数组与字符串

数组VS字符串

首先,JavaScript有六种数据类型。原始类型有number,string,boolean,null,undefined五种。另外还有一种叫对象类型object,或者说对象。其中,Function,Array,Date等都是一种对象。而Function是一种特殊的对象,函数是可以调用的,而且有自己的作用域。

  • 数组VS字符串

在操作字符串的时候,我们可以理解字符串是类数组,字符串也可以通过.charAt(index)或者str[0]这样的形式来返回某个字符,也有length属性表示字符串的长度。 
但是字符串不是数组,它没有数组一些特定的方法,比如splice()、join()等。我们可以通过:

Array.prototype.join.call(str,"_");//"h_e_l_l_o__w_o_r_l_d"

这样我们可以把字符串当作数组那样用数组的一些特定的方法。

  • 数组VS对象

这里我们顺便提及一下数组与对象的关联。 
相同:都可以继承;都可以当做对象添加/删除属性;数组是对象,对象不一定是数组 
不同:数组自动更新length;按索引访问数组常常比访问一般对象属性明显迅速;数组对象继承Array.prototype上的大量数组操作方法

相互转化

数组转字符串

var str = arr.join("");

字符串转数组

var arr = str.split("");
posted @ 2017-04-17 14:18  呆sd  阅读(209)  评论(0编辑  收藏  举报