ECMAScriptjs数组与字符串截取 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()方法则打数组末尾移除最后一个素,减少数组的
length 值,然后回来移除的要素。改变原先数组

2.当三番五次组前端添加、删除元素

unshift() 方法从数组前端添加一个还是多个因素,返回数组的长。改变原数组

shift() 方法从数组前端移除一个因素,返回去元素。改变原来数组

 3. 重排序方法

reverse()        // 返回一个逆向排序的新数组, 改变原先数组

sort()      //返回一个从小到深排序的新数组 , 改变原数组

留神:sort排序默认是依照数组元素的ASCII码的大小排序,如果想用sort完成元素数值大小的排序需要调用函数

 

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

 1.依据当前数组元素/数组,连接新的素/数组,形成一个新的数组

  concat() 方法返回新数组,不移原数组

2.博、截取、插入、替换元素

slice 基于当前数组获取指定区域元素,并返一个初数组,不移原数组

 

//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
的均等种基本的数据类型。

 1、var str=‘亲’;    //基本项目

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

 2、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() 正则匹配配 (返回第一差面世的职务)

 

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() 方法用于把字符串转换成为大写