数组、字符串 操作api
数组篇:
1、数组的创建
var arrayObj = new Array(); //创建一个数组
var arrayObj = new Array( [size] ); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array( [ element0 [, element1 [, ... [, elementN ] ] ] ] ); 创建一个数组并赋值
要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。
2、数组的元素的访问
var arrValue = arrayObj[1]; //获取数组的元素值
arrayObj[1] = "***"; //给数组元素赋予新的值
3、数组元素的添加删除
arrayObj.push( [ item1 [, item2 [. . . [, itemN ] ] ] ] ); // 将一个或多个新元素添加到数组结尾,并返回数组长度
arrayObj.unshift( [ item1 [, item2 [. . . [, itemN ] ] ] ] ); // 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组长度
arrayObj.pop(); //移除最后一个元素并返回该元素值
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(start,deleteCount,val1,val2,...); //从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...
arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
4、数组元素的字符串化
arrayObj.join( separator ); //返回字符串,这个字符串将数组的每一个元素用 separator 连接。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
5、数组复制
arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向
6、数组元素的排序
arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort(); //对数组元素排序,返回数组地址
7、数组查询
arrayObj.indexOf(item, from); //
从索引 from 查询 item ,如果找到返回索引,否则返回 -1
arrayObj.lastIndexOf(item, from); // 和上面相同,只是从尾部开始查询
arrayObj.includes(item, from); // 从索引 from 查询 item,如果找到则返回 true
arrayObj.keys(item); // 用于从数组创建一个包含数组键的可迭代对象
arrayObj.find( function(item, index, arr), thisValue ); // 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined
arrayObj.findIndex( function(item, index, arr), thisValue ); // 返回数组中满足提供的测试函数的第一个元素的索引。否则返回 undefined
arrayObj.filter( function(item, index, arr), thisValue ); // 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
arrayObj.map(function(item,index,arr), thisValue); // 返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
arrayObj.some(function(item,index,arr), thisValue); // 用于检测数组中的元素是否满足指定条件(函数提供)。如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。
arrayObj.every(function(item,index,arr), thisValue); // 用于检测数组所有元素是否都符合指定条件(通过函数提供)。如果数组中检测到有一个元素不满足,则返回 false ,剩余的元素不再检测。如果所有元素都满足条件,则返回 true。
item 是元素。
index 是它的索引。
arr 是数组本身。
thisValue 执行回调时用作this 的对象。
arrayObj.reduce(function( total, currentValue, currentIndex, arr), initialValue); // 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
initialValue 可选。传递给函数的初始值
字符串篇:
1、字符串转换
var mystr = num.toString();
var mystr = String(num);
var mystr = num + '';
2、字符方法
stringObject.charAt(index); // 返回指定位置的字符。
stringObject.charCodeAt(index); // 返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数
3、字符串截取 (slice、substring、substr )
stringObject.slice(start,end); //提取字符串中从start位置开始,到end位置结束(不包含end)的部分,并以新的字符串返回。负数规定从字符串的尾部开始算,-1即最后一个字符。若未指定 end,则要提取的子串包括 start 到原字符串结尾的字符串
stringObject.substr(start,length); //提取字符串中从start(包括 start 所指的字符) 处开始的 length 个字符,若未指定 length,那么返回的字符串包含从 start 到结尾的字符
stringObject.substring(start,stop); //提取字符串中介于两个指定下标之间的字符。非负整数,从 start 处到 stop-1 处的所有字符。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数
String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr() 则用字符位置和长度来指定子串。
4、字符串分割
stringObject.split(separator,howmany); // separator必需。字符串或正则表达式,从该指定的字符 分割 stringObject。 howmany 可选,指定返回的数组的最大长度
5、字符串替换
stringObject.replace(regexp/substr,replacement) ; // 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。默认只进行第一次匹配操作的替换,想要全局替换,需要置上正则全局标识g
6、字符串模式匹配
stringObject.match( searchvalue / regexp ) ; // 在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
(1) 使用字符串直接进行匹配,被匹配的字符串内包含要匹配的字符串时,返回所要匹配的字符串。
(2)使用正则匹配字符串时,返回值的容依赖于 regexp 是否具有全局标志 g。
如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。除了这些常规的数组元素之外,返回的数组还含有两个对象属性。index 属性声明的是匹配文本的起始字符在 stringObject 中的位置,input 属性声明的是对 stringObject 的引用。
如果 regexp 具有标志 g,则 match() 方法将执行全局检索,找到 stringObject 中的所有匹配子字符串。若没有找到任何匹配的子串,则返回 null。如果找到了一个或多个匹配子串,则返回一个数组。不过全局匹配返回的数组的内容与前者大不相同,它的数组元素中存放的是 stringObject 中所有的匹配子串,而且也没有 index 属性或 input 属性。
详情 可查阅 正则匹配 部分。
stringObject.search(regexp) ; // 检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。返回字符串中第一个匹配项的索引,如果没有匹配项,返回-1
7、字符串查询
stringObject.indexOf(searchvalue,fromindex); // 返回字符串中一个子串第一处出现的索引(从左到右搜索),如果没有匹配项,返回 -1。对大小写敏感。
stringObject.lastIndexOf(searchvalue,fromindex); // 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。对大小写敏感。
8、字符串去空格
stringObject.trim(); // 从一个字符串的两端删除空白字符。不影响原字符串本身,它返回的是一个新的字符串。
9、字符串大小写转换
stringObject.toLowerCase(); // 把字符串转换为小写。
stringObject.toUpperCase(); // 把字符串转换为大写。
-- end --