常用的数组api,字符串api

常用的数组api

1) 检查数组

var arr = [];
typeOf(arr); //返回object

Array.isArray(arr); //判断arr是否是数组类型

 2) 转换数组为字符串
数组继承Object方法,并且对这些方法进行了重写
        toLocalString();
        toString();
在默认情况下都会以逗号分隔字符串的形式返回数组项
例如:
var arr = ["terry","larry","boss"];
arr.toString() //terry,larry,boss 
valueOf(); 在默认情况下以数组字面量的方式显示(firefox)
arr.valueOf(); //["terry","larry","boss"];
join(); 使用指定的字符串用来分隔数组字符串
例如:
arr.join("||"); //briup||terry||jacky

 3) 栈,队列方法
1.栈  LIFO (Last-In-First-Out)
push()  可接受任意类型的参数,将它们逐个添加到数组的末尾,并返回数组的长度
pop()  从数组的末尾移除最后一项,减少数组的length值,返回移除的项
2.队列 FIFO (First-In-First-Out)
shift()  移除数组中的第一个项并且返回该项,同时将数组的长度减一。
unshift()  在数组的前端添加任意个项,并返回新数组的长度。

 4) 排序

       reverse()  

            反转数组中元素的位置
    参数:无
    返回值:反转之后的数组
   【原数组改变】

       sort()

            排序
    参数
1)无参
默认排序,字符序列
2)比较器函数
按照比较器函数定义的规则来排序
返回值:排序后的数组
   【原数组改变】
     比较器函数:(升序)
     a.比较函数有两个参数
     b.如果第一个参数位于第二个参数之前,返回负数
     c.如果第一个参数位于第二个参数之后,返回正数  

         1.默认排序:该方法会调用每个数组项的toString() 转型方法,然后排序
         2.自定义排序:
a.该方法可以接受一个比较函数作为参数,比较函数有两个参数
b.如果第一个参数位于第二个参数之前,返回负数
c.如果第一个参数位于第二个参数之后,返回正数
var arr = [11,5,23,7,4,1,9,1];
console.log(arr.sort(compare));

//该比较函数适合于大多数数据类型
function compare(v1,v2){
if(v1>v2){
return -1;
}else if( v1<v2){
return 1;
}else{
return 0;
}
}
5) 操作方法

concat(): 先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,返回副本

                         将多个数组连接成一个数组
         参数:数组或值
         返回值:连接后的数组
        【原数组不改变!】

var arr = ["aa","bb","cc","dd"];
var arr_new = arr.concat("ee","ff"); 
// arr_new = ["aa", "bb", "cc", "dd", "ee", "ff"]// arr不改变
slice(): 可接受一个或者两个参数(返回项的起始位置,结束位置)
获取子数组
参数
1)参数为一个整数,代表切割的起始位置,返回从该位置到数组末尾的所有元素的数组
    如果第一个参数为负数,从右往左计算开始位置(从-1开始),从该位置截取到数组的末尾。
2)参数为两个整数,获取从第一个参数开始,到第二个参数位置但是不包括第二个参数位置上的值。
    如果第一个参数为负数,从右往左计算开始位置(从-1开始),从该位置截取到第二个参数计算的结束位置。
返回值:截取的子数组
       【原数组不改变!】
例如:
var arr = ["aa","bb","cc","dd"];
1.接受一个参数时
  var arr_new = arr.slice(1);
// arr_new = ["bb", "cc", "dd"],arr 不改变
2.接受两个参数时
  var arr_new = arr.slice(1,2);
// arr_new = ["bb"]; arr不改变
splice():  向数组的中部插入数据将始终返回一个数组,该数组中包含从原始数组中删除的项。
可以实现数组的删除,插入,替换功能
参数:
1)1个参数,从该参数指定的位置开始删除,直到数组的末尾。
2)2个参数,第一个参数表示删除的起始位置,第二个参数删除的个数
3)2个以上,第一个参数表示删除的起始位置,第二个参数删除的个数,第三个元素以及之后元素表示插入的值
返回值:删除的元素
       【原数组改变!】

例如:
var arr = ["aa","bb","cc","dd"];
1.删除
  var del_arr = arr.splice(1,2);
// arr = ["aa","dd"]; 在原数组进行了删除操作
// del_arr = ["bb","cc"];返回删除的元素数组
2.插入
  var del_arr = arr.splice(1,0,"ee","ff");
// arr =  ["aa", "ee", "ff", "bb", "cc", "dd"] 将指定项插入到1位置处
//del_arr = [], 返回空数组
3.替换
  var del_arr = arr.splice(1,2,"ee","ff");
// arr =  ["aa", "ee", "ff", "dd"] 将"bb","cc" 替换成了"ee","ff"
//del_arr = ["bb", "cc"], 返回删除的元素数组
indexOf():(要查找的项,开始查找的位置(可选)) 从数组开头向后查找,使用全等操作符,找不到该元素返回-1
var arr = ["22","11","cc","dd","11"];
arr.indexOf(11); //返回-1,因为使用"==="进行匹配
arr.indexOf("11"); //返回1,从前往后匹配,返回第一个匹配元素的位置
lastIndexOf():(要查找的项,开始查找的位置(可选)) 从数组末尾向前查找,使用全等操作符,找不到该元素返回-1
var arr = ["22","11","cc","dd","11"];
arr.lastIndexOf("11"); //返回1,从后往前匹配,返回第一个匹配元素的位置
    
 6) 迭代方法:
参数: 每一项上运行的函数,运行该函数的作用域对象(可选)
every();对数组中的每一运行给定的函数,如果该函数对每一项都返回true,则返回true
var arr = [11,5,23,7,4,1,9,1];
var result = arr.every(function(item,index,arr){
return item >2;
});
console.log(result); //false
some(); 对数组中的每一运行给定的函数,如果该函数对任一项都返回true,则返回true
var result = arr.some(function(item,index,arr){
return item >2;
});
console.log(result); //true
filter();对数组中的每一运行给定的函数,会返回满足该函数的项组成的数组
var result = arr.filter(function(item,index,arr){
return item >2;
});
console.log(result); // [11, 5, 23, 7, 4, 9]
map();对数组中的每一运行给定的函数,返回每次函数调用的结果组成的数组
var result = arr.map(function(item,index,arr){
return item * 2;
});
console.log(result); // [22, 10, 46, 14, 8, 2, 18, 2]
forEach();对数组中的每一运行给定的函数,没有返回值,常用来遍历元素
var result = arr.forEach(function(item,index,arr){
console.log(item);

});


字符串api

    1.常见函数和属性
length 属性,获取字符串的字符数量
charAt(i) 返回给定位置的字符
charCodeAt() 返回给定位置的字符的字符编码
var s = "helloworld";
s.charAt(1);    //e
s.charCodeAt(1); //101
concat() 将一个或多个字符串拼接起来,返回拼接得到的新字符串,但是大多使用"+"拼接
slice()(开始位置,返回字符后一个字符位置)
substr()(开始位置,返回字符个数)
substring()(开始位置,返回字符后一个字符位置)
var s = "helloworld";
s.slice(3,7); //lowo
s.substr(3,7); //loworld
s.substring(3,7);//lowo
s //helloworld 不改变原值大小
indexOf();  从前往后查找指定字符所在位置
lastIndexOf(); 从后往前查找字符串所在位置,可以有第二个参数,代表从字符串中哪个位置开始查找。
trim();  删除前置以及后置中的所有空格,返回结果
var s = " hello world ";
console.log("|"+s.trim()+"|"); //|hello world|
toLowerCase(): 转换为小写
toUpperCase(): 转换为大写
  
2.Javascript中String对正则表达式的支持      
search()  参数为一个正则表达式。如果参数不为正则表达式,则先通过RegExp将其转换为构造函数。不支持全局检索,返回第一个与之匹配的子串的位置,如果找不到匹配的子串,返回-1。
"JavaScript".search(/script/i); //返回4
        replace() 用以执行检索和替换操作。第一个参数是正则表达式,第二个参数是要替换的字符串。
text.replace(/javascript/gi,"JavaScript"); //不区分大小写将所有javascript转换为JavaScript
match()   最常用的正则表达式方法,参数为正则表达式。返回由匹配结果组成的数组。
当正则表达式中没有g修饰符的时候,就不是全局匹配。这时,数组的第一个元素就为匹配的字符串,剩余的元素则是由正则表达式中用圆括号括起来的子表达式。如果该正则表达式设置为修饰符g,则该方法返回的数组包含字符串中所有匹配结果。
"1 plus 2 equals 3".match(/\d+/g) //返回["1","2","3"]

var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "visit my blog at http://www.briup.com/~ee";
var result = text.match(url);
if(result!=null){
var fullurl = result[0];
var protocol = result[1];
var host = result[2];
var path = result[3];
}
split() 参数可以为正则表达式
"1, 2, 3, 4, 5".split(/\s*,\s*/); //["1","2","3","4","5"] 允许分隔符左右两边留有空白

<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title>mischen</title>  
    <script>  
        //  字符串  String  中 使用正则表达式的方法    search()   match()   replace()  
        //search 非g和g模式下  都是返回 第一个匹配到的字符串所在 下标  
        //match  非g模式  返回匹配正则表达式的 第一个  字符串   g模式  返回所有能匹配正则表达式的字符串  
        // replace  非g模式下  替换第一个匹配到的字符串    g模式下替换 所有匹配的字符串  
        function testSearch(){  
            var str="fda123abc456def";  
//            var reg=/\d+[a-z]+/i;  
            var reg=/\d+[a-z]+/ig;  
            alert(str.search(reg));//3  
        }  
    //    testSearch();  
  
        function testMatch(){  
            var str="fda123abc456def";  
            //测试非g模式  
            var reg=/\d+[a-z]+/i;  
            alert(str.match(reg));//123abc  
  
//            var reg=/\d+[a-z]+/ig;  
//            alert(str.match(reg));//123abc,456def  
        }  
   //    testMatch();  
  
        function testReplace(){  
//            var str="  abc  ";  
            //trim 的写法  熟记  
//            alert(str.replace(/^\s+|\s+$/ig,"").length);  
  
            //替换字符串中 类似 abab   abcabc  
//            var str="bobofhbeahgegedsahkdsameimeidsadhehe";  
  
            //alert(str.replace(/([a-z]{2,3}){2}/ig,"嘿嘿"));//  ([a-z]{2,3}){2}/ig  为什么不行  
//            alert(str.replace(/([a-z]{2,3})\1/ig,"嘿嘿"));  
  
            //替换字符串中 类似  gogoing   dodoing showshowing  
  
            var str="gogoingfdsahkfahdodoingfdafhadshowshowing";  
            alert(str.replace(/([a-z]{2,4})\1ing/ig,"嘿嘿"));  
        }  
    //    testReplace();  
    </script>  
</head>  
<body>  
  
</body>  
</html>  


  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值