数组、字符串常用方法

字符串

字符串的创建:

var str = "abc";
var str = new String();

将任意类型的值转换成字符串:

Var a = 10;
Var str = a.toString(); //string
Var str1 = “”+a; //string
Var str2 = String(a);//string

除了 slice() 和 substr() 方法里的负值是代表从右截取,其他方法里的负值一律作为0处理

  1. charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码。
    Str.charCodeAt(index);如果指定位置没有字符,返回NaN;
var str = "abc";
console.log(str.charCodeAt(3));//NaN
  1. fromCharCode方法从一些Unicode字符串中返回一个字符串。

  2. charAt方法返回指定索引位置处的字符。如果超出有效范围的索引值返回空字符串。

  3. slice方法返回字符串的片段。

strObj.slice(start[,end]) 

start下标从0开始的strObj指定部分起始索引。如果start为负,将它作为length+start处理,此处length为字符串的长度。 

end小标从0开始的strObj指定部分结束索引。如果end为负,将它作为length+end处理,此处length为字符串的长度。
var str = "abc";
var str1 = str.slice(0,-2);
var str2 = str.slice(-1);
console.log(str1,str2);//a c

5、substring方法返回位于String对象中指定位置的子字符串

strObj.substring(start,end) 

    start指明子字符串的起始位置,该索引从0开始起算。 
        
    end指明子字符串的结束位置,该索引从0开始起算。 
        
    substring方法使用start和end两者中的较小值作为子字符串的起始点。如果start或end为NaN或者为负数,那么将其替换为0。

6、substr方法返回一个从指定位置开始的指定长度的子字符串。

    strObj.substr(start[,length]) 
    start所需的子字符串的起始位置。字符串中的第一个字符的索引为0。 
    length在返回的子字符串中应包括的字符个数。 
    var str = "ABCDEF"; 
    str.substr(2,4); //CDEF ;

7、indexOf方法返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。

lastindexOf()方法从尾部开始寻找对象中第一次出现子字符串的位置

    strObj.indexOf(substr[,startIndex]) 
    substr要在String对象中查找的子字符串。 
    startIndex该整数值指出在String对象内开始查找的索引。如果省略,则从字符串的开始处查找。 
    var str = "ABCDECDF"; 
    str.indexOf("CD",1); // 由1位置从左向右查找 123... 结果:2 

8、search方法返回与正则表达式查找内容匹配的第一个字符串的位置。

    strObj.search(reExp) 
    reExp包含正则表达式模式和可用标志的正则表达式对象。 
    var str = "ABCDECDF"; 
    str.search("CD"); // 或 str.search(/CD/i); 结果:2 

9、concat方法返回字符串值,该值包含了两个或多个提供的字符串的连接。

    str.concat([string1[,string2...]]) 
    string1,string2要和所有其他指定的字符串进行连接的String对象或文字。 
    var str = "ABCDEF"; 
    str.concat("ABCDEF","ABC"); 
    结果:ABCDEFABCDEFABC

10、Split将一个字符串分割为子字符串,然后将结果作为字符串数组返回。

    strObj.split([separator[,limit]]) 
    separator字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是   多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 
    limit该值用来限制返回数组中的元素个数。 
    var str = "AA BB CC DD EE FF"; 
    alert(str.split(" ",3)); 
    结果: AA,BB,CC 

11、 toLowerCase方法用于将一个字符串全部转为小写

toUpperCase则是全部转为大写。

它们都返回一个新字符串,不改变原字符串。

console.log(" hello word ".trim());
//hello world
console.log('Hello World'.toLowerCase());
// "hello world"
console.log('Hello World'.toUpperCase());
// "HELLO WORLD"

12、trim(): 用于去除字符串两端的空白,返回一个新字符串 不改变原数据

console.log(' hello world '.trim()); //hello word

13、replace 返回被替换的字符串

str.replace(rgExp/substr,replaceText)  

数组

数组的概念:有序的元素的集合 使用数字作为索引的一个对象 索引为从0开始的整数

创建方式

1、构造数组 var arr = new Array();

向数组中添加元素:数组[索引] = 值;
读取数组 数组[索引] 当索引值比数组长度大时,会返回undefined;
数组长度:数组.length;

var arr1 = new Array();
arr1[0] = 1;
arr1.length = 10;
console.log(arr1,arr1.length); //如果修改的length大于原长度,则多出部分会空出来;
arr1.length = 2;
console.log(arr1,arr1.length); //如果修改的length小于原长度,则多出的部分会删除;

2、字面量创建数组 var arr = [];

中括号里边可以直接添加元素(可以是任意类型的数据类型);

数组的操作方法

1、push() 可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度

2、Pop() 数组末尾移除最后一项,减少数组的LENGTH值,并返回被删除的元素

3、Unshift() 在数组的头部添加一个或者多个元素,返回增加后数组的长度

4、Shift() 从数组的头部删除一个元素并返回这个删除的元素,如果数组为空则返回undefined;

5、Slice()返回从原数组中指定开始下标到结束下标之间的项组成的新数组。

slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。
在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。
如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
var a = arr(0,2);
第二个参数可以是负值:则从后往前截取 -1:最后一个

6、splice:

删除:可以删除任意数量的项,只需指定 2 个参数:要删除的第一项的位置和要删除的项数。例如, splice(0,2)会删除数组中的前两项。

插入:可以向指定位置插入任意数量的项,只需提供 3 个参数:起始位置、 0(要删除的项数)和要插入的项。例如,splice(2,0,4,6)会从当前数组的位置 2 开始插入4和6。

替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定 3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice (2,1,4,6)会删除当前数组位置 2 的项,然后再从位置 2 开始插入4和6。
splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项,如果没有删除任何项,则返回一个空数组。

7、join()

将数组的元素组成一个字符串
不会对原数据产生影响,会把转化后的字符串作为结果返回
在join()中可以指定一个字符串作为参数,这个字符串将会作为数组中元素的连接符,如果不指定连接符,默认为逗号

8、reverse():
用来反转数组,前面的去后面,后面的去前面;

9、Sort() 对数组成员进行排序,默认按照字典顺序排序,原数组会改变

arr.sort(function (a,b){
return a-b;//升序
})

sort的参数函数本身接受两个参数,表示进行比较的两个数组成员。如果该函数的返回值大于0,表示第一个成员排在第二个成员后面;其他情况下,都是第一个元素排在第二个元素前面

10、concat() :将参数添加到原数组中。

这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。 

11、indexOf():接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。

12、lastIndexOf:接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。

这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符。

13、forEach():对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;对应的数组索引,数组本身。

var arr = [1,2,6,4];//1 0 true;2 1  true;6 2 true;4 3 true
arr.forEach(function (x,index,a){
    console.log(x+" "+index+" "+(a===arr));
})

14、map():指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

var arr1 = [32,5,11,12];
var arr = arr1.map(function (x){
    return x+3
})
console.log(arr);  //[35,8,14,15]

15、filter(): 用于过滤数组成员,满足条件的成员组成一个 新数组返回 原数组不变
它的参数是一个函数,所有数组成员一次执行,返回结果为 true 的元素组成一个新数组返回
第一个参数:当前成员
第二个参数:当前成员的索引
第三个参数:整个数组

var arr2 = [21,152,66,565];
var arr3 = arr2.filter(function (x,index){
    return x % 3 == 0;
})
console.log(arr3);//[21,66];

15、every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。

16、some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。

 //every
var arr4 = [26,641,15312,63,1];
var arr5 = arr4.every(function (x){
    return x > 1;
})
console.log(arr5);//false
//some
var arr7 = arr4.some(function (x){
    return x > 1;
})
console.log(arr7);//true

17、reduce(): 将内部的返回值作为实参传递第一个形参,进行下一次运算

var arr =[1,2,3,5]
var sum = arr.reduce(function(a,b){
return a+b;
});
console.log(sum); //1+2+3+5=11
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容