字符串和数组常用方法小结(基础整理)

常用方法整理

<script type="text/javascript">
    //array
        //splice(index,howmany,item1,item2...) 会改变原数组  返回被删除的数组
        var a =[1,2,3,4,5,6,7,8];
        var b = a.splice(1,3);
        console.log(a);//[1,5,6,7,8]
        console.log(b);//[2,3,4]
        //slice(start,end(不包括))  不会改变原数组的值  返回从start到end的数组
        var c =['a','b','c','d','e','f','g'];
        var d = c.slice(1,3);
        console.log(c);//['a','b','c','d','e','f','g']
        console.log(d);//['b','c']
        //push(newitem1,newitem2...)在末尾追加 改变原数组 返回新数组的长度
        var e =[1,2,3,4,5,6];
        var f = e.push(7,8);
        console.log(e);//[1,2,3,4,5,6,7,8]
        console.log(f);//length  8
        //unshift(newitem1,newitem2...)在开头添加一个或者多个元素 直接修改原来的数组 返回值是新数组的长度
        var g = [1,2,3];
        var h = g.unshift(0);
        console.log(g);//[0,1,2,3]
        console.log(h);//length 4
        //shift()删除数组的第一个值 返回值:第一个元素的值 直接改变原数组
        var i = [1,2,3,4,5,6,7];
        var j = i.shift();
        console.log(i);//[2,3,4,5,6,7]
        console.log(j);//删除掉的值1
        //pop()该方法删除数组的最后一个元素 如果数组为空不做操作返回undefined如果数组不为空返回被删除的值
        var k =[1,2,3,4,5,6,7,8];
        var l = k.pop();
        console.log(k);//[1,2,3,4,5,6,7]
        console.log(l);//8
        //concat()用于连接两个或者多个数组 该方法不会改变原来的数组,仅仅会返回被连接数组的一个副本
        //arryobject.concat(item1...)  item1可以是数组也可以是数值,如果是数组参加合并的是数组的元素
        var m = [1,2,3,4,5,6];
        var n = [7,8,9];
        var o = m.concat(10);
        var p = m.concat(n);
        var q = m.concat(n,p);
        console.log(m);//[1,2,3,4,5,6]
        console.log(n);//[7,8,9]
        console.log(o);//[1,2,3,4,5,6,10]
        console.log(p);//[1,2,3,4,5,6,7,8,9]//没有10,因为m不变
        console.log(q);//[1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9]

        //数组的一些常用方法
        //Array.isArray(object)  object 必须,为要测试的对象  返回值为布尔值
        var r =[1,2,3];
        var result = Array.isArray(r);
        console.log(result)//true
        //join(separator)//separator分隔符可选  可以将一个数组转换成字符串  返回值是字符串
        var arr = ["a","b","c"];
        var arrstr = arr.join();
        console.log(arrstr);//a,b,c
        var arrstr1 = arr.join("*");
        console.log(arrstr1)//a*b*c
        //reverse()将数组中的元素翻转  该方法改变原数组
        var ab = [1,2,3,4,5,6];
        var cd = ab.reverse();
        console.log(ab);//[6,5,4,3,2,1]
        console.log(cd);//[6,5,4,3,2,1]
        //toString()
        var ef = ["arr1","arr2","arr3"];
        var gh = ef.toString();
        var ig = ef.valueOf();
        console.log(ef);//["arr1","arr2","arr3"]
        console.log(gh);//arr1,arr2,arr3
        console.log(ig);//["arr1","arr2","arr3"]
    //String
        //charAt(index)可返回指定位置的字符  stringObject.charAt(index)//index必须 字符串的位置
        var str = "hello world!";
        var chatAt1 = str.charAt(6);
        console.log(chatAt1);//w
        //charCodeAt(index)返回指定位置字符的Unicode编码
        var charCodeAt1 = str.charCodeAt(6);
        console.log(charCodeAt1)//119
        //fromCharCode(numx,numx,numx)该方法可接受一个指定的Unicode值,然后返回一个字符串。
        var fromCharCode1 = String.fromCharCode(72,69,76,76,79);
        console.log(fromCharCode1)//HELLO
        //str.indexOf(searchString,startIndex);返回子字符串第一次出现的位置,从startIndex开始查找,找不到返回-1
        var str = "Hello world!";
        var index1 = str.indexOf("Hello");
        var index2 = str.indexOf("e");
        var index3 = str.indexOf("world");
        var index4 = str.indexOf("hello");
        console.log(index1)//0
        console.log(index2)//1
        console.log(index3)//6
        console.log(index4)//-1
        //str.lastIndexOf(searchString,startIndex);从右向左查找,返回子字符串第一次出现的位置,从startIndex开始查找,找不到返回-1
        var index5 =str.lastIndexOf("Hello");
        var index6 = str.lastIndexOf("!");
        console.log(index5)//0
        console.log(index6)//11
        // 由于上面两个方法都只能返回一次,当需要讲一段字符串里的所有searchString出现的位置都查找出来,方法如下:
        var str ="1234567898888";
        var s = "8";
        var i =0;
        for(;str.indexOf(s,i)!=-1;){
            console.log(str.indexOf(s,i));//7,9,10,11,12
            i=str.indexOf(s,i)+s.length;
        }
        //substring(start,stop)该方法用于提取字符串中介于指定下标之间的字符  返回值:一个新字符串,内容为从start到stop-1的所有字符  注意:if start=end,返回值为空字符串 if start>end 提取子字符串之前会交换这两个参数 if start或者end为负数,他们将被替换为0
        var str = "Hello world!";
        var substring1 = str.substring(3);
        var substring2 = str.substring(1,3);
        console.log(substring1)//lo world!
        console.log(substring2)//el
        //substr(start,length)该方法可在字符串中抽取从start下标开始的指定数目的字符 返回值:一个新的字符串,包括从start出开始的lenght个字符,如果没指定length则到结尾  注:start也是可正可负,负值代表从右截取-1表示最后一个字符
        var str = "Hello world!";
        var substr1 = str.substr(3);
        var substr2 = str.substr(3,8);
        console.log(substr1);//lo world!
        console.log(substr2);//lo world
        //slice(start,end)该方法可提取字符串的某个部分,并以新的字符串返回被提取的部分 返回值:一个新的字符串包括从start到end(不包括)为止的所有字符。
        // 注:两个参数可正可负,负值代表从右截取
        var str="Hello happy world!";
        var slice1 = str.slice(6);
        var slice2 = str.slice(6,11);
        console.log(slice1)//happy world!
        console.log(slice2)//happy
        //split(separator,howmany);参数1指定字符串或正则,参数2指定数组的最大长度
        // 该方法用于把一个字符串分割成字符串数组  返回值:一个字符串数组
        var str = "How are you?";
        var split1 = str.split(" ");
        var split2 = str.split("");
        var split3 = str.split("",3);
        console.log(split1);//["How","are","you?"]
        console.log(split2);//["H","o","w","","a","r","e","","y","o","u","?"]
        console.log(split3);//["H","o","w"]
        var str1 = "2:3:4:5:6";
        var split4 = str1.split(":");
        console.log(split4)//["2","3","4","5","6"]
        //replace(regexp/substr,replacement)
        // 该方法用于在字符串中用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子串  返回值:一个新的字符串,就是用replacement替换了regexp的第一次匹配或所有匹配之后得到的。
        var str = "Visit Microsoft!";
        var replace1 = str.replace(/Microsoft/,"W3School");
        var replace2 = str.replace("Microsoft","Hello");
        console.log(replace1);//Visit W3School!
        console.log(replace2);//Visit Hello!
        //match(searchvalue)或者match(regexp)searchvalue必须,指要检索的字符串值 regexp必须 规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象
        // 返回值:存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
        var str ="Hello world!";
        var match1 = str.match("world");
        var match2 = str.match("World");
        console.log(match1);//["world"]
        console.log(match2);//null
        var str = "1 push 2 equal 3";
        var match3 = str.match(/\d+/g);
        console.log(match3);//["1","2","3"]


        // demo:/*利用var s1=prompt("请输入任意的字符串","")可以获取用户输入的字符串,试编程将用户输入的字符串“反转”,并且将字符串输出*/
        //接受字符串 
        var s1=prompt("请输入任意的字符串",""); 
        //字符串转换为数组 
        var arr=s1.split(""); 
        //利用数组对象的reverse()方法实现反转 
        arr.reverse(); 
        //利用数组的join()方法转换为字符串 
        var str=arr.join(""); 
        console.log(str);//翻转后的字符串 
    </script>

猜你喜欢

转载自blog.csdn.net/wh_xmy/article/details/80244414