js数组与字符串截取 slice、splice、substring、substr

数组

 

数组的概念 

当大家要求代表一组数据,只怕叫做一次性定义很多形似的数字或变量时,就须要选择数组,数组的字面意思就是一组数据,一组(一般景况下一样档次)的数额(不肯定都以数字),数组的功效是:使用单独的变量名来囤积一雨后春笋的值。

遍历数组:

普通for循环

for(var i=0; i<5; i++){

        document.write(arr[i]);

}

for…in 语句用于遍历数组或许目的的性格(快捷遍历)

for(var i in arr){

        document.write(arr[i]);

}

栈方法

1.在数组末尾添加、删除成分

push()方法尚可任意数量的参数,把它们各种添加到数组的末梢,并重返修改后数组的尺寸。改变原数组

pop()方法则从数组末尾移除最后3个因素,减弱数组的
length 值,然后重返移除的要素。改变原数组

2.在数组前端添加、删除成分

unshift() 方法从数组前端添加3个或七个要素,再次回到数组的长短。改变原数组

shift() 方法从数组前端移除五个成分,重临删除成分。改变原数组

 3. 重排序方法

reverse()        // 再次回到二个逆向排序的新数组, 改变原数组

sort()      //重回1个从小到大排序的新数组 , 改变原数组

注意:sort排序暗许是遵从数组元素的ASCII码的尺寸排序,如若想用sort完结成分数值大小的排序须求调用函数

 

//数组升序排列
function compare(m, n) {
    return m– n; //想要降序排列此处换为 n – m;
}
arr.sort(compare);

 1.依照当前数组成分/数组,连接新的要素/数组,形成八个新的数组

  concat() 方法重临新数组,不转移原数组

2.获取、截取、插入、替换来分

slice 基于当前数组获取内定区域成分,并回到2个新数组,不改动原数组

 

//slice(a,b)   获取范围是[a b)
var arr = Array(2,5,8,10,3,28);
        var a = arr.slice(1,2);                //从下标1开始获取,到下标2结束,不包括下标2 [1 2).

        document.writeln(arr);                //元素不变
    document.writeln(a);                //5

 

splice   数组值的截取,插入和替换,会改变原数组

数组值的截取会改变原数组,重临截取成分的数组

 

//splice(a,b)  截取范围是从a按开始,截取长度为b
    var arr = Array(2,5,8,10,3,28);
    var a = arr.splice(2,3);            //从下标2开始,截取3个元素
    document.writeln(arr);                //2,5,28
    document.writeln(a);                //8,10,3

 

安顿成分,无重返值,改变原数组

 

//splice   插入
var arr = Array(2,5,8,10,3,28);
var a = arr.splice(2,0,"a","b");    //从下标2开始,截取0个元素,并插入新元素
    document.writeln(arr);            //2,5,a,b,8,10,3,28 
            document.writeln(a);                //无返回值

 

 

轮换来分,再次回到被交流成分,改变原数组

 

//splice   替换
var arr = Array(2,5,8,10,3,28);
            var a = arr.splice(2,1,"a");        //从下标2开始,截取1个元素,并插入一个新元素(数组元素替换)
            document.writeln(arr);                //2,5,a,10,3,28 
            document.writeln(a);                //8

 

 3.定义数组成分间的相间符

join   使用钦赐的相间符把数组中的数据连接成字符串,再次来到新字符串,不转移原数组成分

 

Join()
var arr = Array(2,5,8,10,3,28);
    var w = arr.join("、");
    document.writeln(w);            //2、5、8、10、3、28
document.writeln(arr);        //2,5,8,10,3,28

 

 

字符串string

字符串就是一串字符,由双(单)引号括起来。

字符串是 JavaScript
的一种为主的数据类型。

 壹 、var str=‘亲’;    //基本类型

概念一个字符串变量str,内容为’亲’

 ② 、var str = new String(“hello”);       //引用类型

概念二个字符串变量str,内容为hello, 

      注意此刻str为object(对象)类型 

对象只是一种卓殊的数据类型。对象具备属性和章程

      用new发生的变量都以引用类型的变量,也叫对象

 

 3、var str = String(‘hello’);

宗旨项目: string, number, boolean, undefined,

      引用类型/对象: Array , Date, Object, String,
Function

 

var s1 = new String(‘hello world’);

var s2 = String(‘hello world’);

console.log(typeof s1);   //object

console.log(typeof s2);   //string

    当String()和要素符new一起作为构造函数使用时,它回到壹个新创制的String对象。

     当不用new运算符调用String()是,它只把s2转换到原始的字符串,并回到转换后的值。

 

    length:表示字符串的长度;

      如 :   var str = “how are
you”;

               console.log(str.length);

  console.log(str[0]); //获取字符串中对应下标的字符

ECMAScript 中的字符串是不可变的;

要转移有些变量保存的字符串,首先要销毁原来的字符串,然后再用另贰个带有新值的字符串填充该变量,

 

var str1 =  "hello";
console.log(str1);        //hello
str2 = str1 + " world";
console.log(str1);            //hello
console.log(str2);                //hello world

 

字符串的主意

  1. 字符的拿走格局

 

str.charAt   str.charCodeAt   String.fromCharCode
var str = "0123456";
console.log(str.charAt(3)) ;    //获取下标为3的字符      3
console.log(str[3]) ;    //获取下标为3的字符      3
console.log(str.charCodeAt(3)) ;   //获取下标为3的字符的编码(ASCII码)51
console.log(String.fromCharCode(97)) ; //ASCII编码转换成字符    a
var str = String.fromCharCode(98,99); 
console.log(str);                                    //bc

 

该形式是 String
的静态方法,所以用String调用,
       

   如:var str = String.fromCharCode(98,99); 可传唱多少个参数

2.连接字符串
 str.concat()  

 

str.concat()  也可以用+连接
var str1 = "hello";
    var str2 = str1.concat(" world");
    console.log(str1);            //hello        
    console.log(str2);            //hello word

 3.字符串的查找方法 

str.indexOf( )  查找字符串第三次面世的任务,假如没找到则赶回-1

 

str.indexOf( )
var str = "abcdabcd";
    var subStr = "bcd";
    var index = str.indexOf(subStr); 
console.log(index);                        // 1

 

str.lastIndexOf( )  寻找字符串最后四回出现的任务,
若是没找到则赶回-1

 

str.lastindexOf( )
var str = "abcdabcd";
var index = str.lastIndexOf(“abc”);        // 4

 

 

 4.正则匹配

str.search() 正则匹配 (重回第2遍面世的职位)

 

str.search()  
var str = "Abcdabcd"; 
var index = str.search(/abc/gi);         //index = 4

 

注: g表示进行全局匹配,i表示非凡的时候不经意大小写 

 

5.str.replace() 替换字符串 

  

str.replace()  
var str = "how are  you!"; 
var newStr = str.replace("are", "old are"); 
console.log(str);            //how are  you!
console.log(newStr);        //how old are  you!

 

此处的轮换只好举行三回,不可见进行全局匹配,假使需要全局匹配,则应利用正则表达式: str.replace(/are/gi,
“old are”)

字符串的常用函数(紧要)

substring(start,end); //截取字符串 范围是[start, end)

substr(a,b)   截取字符串,范围是从下表为a的字符开头,截取长度为b

 

substr()  
var  str =  'Hello world!';
console.log(str.substring(2,5));        //llo
console.log(str);            //Hello world!
console.log(str.substr(2,5));        //llo w

 

 

注: 若是只有二个参数, 则意味着到字符串最后

split(separator, howmany)—依据分隔符、拆分成数组

separator(字符串或正则表明式)

howmany(可以钦点重返的数组的最大尺寸, 可以回顾)

 

split()  根据分隔符、拆分成数组
    var  str =  'Hello*world*!';
    var str1 = str.split(/\*/);
    console.log(str);        //Hello*world*!
    console.log(str1);        //["Hello", "world", "!"]
    var  str =  'Hello*world*!';
    var str1 = str.split('');
    console.log(str1);        //["H", "e", "l", "l", "o", "*", "w", "o", "r", "l", "d", "*", "!"]

 

 

【注】要是空字符串(“”)用作separator,那么stringObject中的每一种字符之间都会被分割。 

toLowerCase() 方法用于把字符串转换成小写 

toUpperCase() 方法用于把字符串转换来大写