js数组API和字符串API汇总
这段时间刚刚学习了API,真的多记不住啊需要整理一下~~~
数组API
拼接:arr.concat(“a”,“b”,arr1) 将其他元素或另一个数组,拼接到数组的结尾
例:
var arr = [1,2,3];
var arr1 = [4,5,6];
var new_arr = arr.concat(arr1);
var new_arr1 = arr.concat(5,6,7,8,9);
console.log(String(new_arr));
console.log(String(new_arr1));
//返回 1,2,3,4,5,6
//1,2,3,5,6,7,8,9
强调:
(1)不会修改原数组,返回新数组。
(2)concat方法中的数组会被打散为单个元素再拼接。
拼接:String(arr) 数组转字符串:String(arr)或arr.toString()
例:
var arr = [1,2,3];
console.log(String(arr));
//输出 1,2,3
返回值 : string,将数组中的元素用逗号连接成字符串,类似于arr.join(",")
连接:arr.join(“连接符”)
将数组中的每个元素转为字符串,通过自定义的连接连接
例:
var arr = [1,2,3];
console.log(arr.join(""));
//输出 123
固定写法 : 无缝连接,也可以加其他连接符号,如 上的栗子
截取:arr.slice(start[,end]) 从原数组中指定位置到结束位置之间所有的元素,组成一个临时子数组
例:
var arr = [1,2,3,5,6,7,8,9];
var new_arr = arr.slice(3, 6);
console.log(new_arr);
//返回 [5,6,7]
//省略第二个参数,从指定位置一直截取到结尾
console.log(arr.slice(6));
//返回 [8,9]
// 支持负数参数 -n ==> arr.lenght - n
console.log(arr.slice(2,-3));
//输出 [3, 5, 6, 7]
强调:(1)不会修改原数组,返回新的子数组。
(2)含头不含尾。
(3)省略第二个参数表示从start位置开始一直截取到末尾。
(4)支持负数,表示倒数第几个。
删除、插入、替换:arr.splice(start,n[,value1,value2…])
(1)删除 splice()(开始下标,删除的个数插入的值)
var arr = [1, 2, 3, 4, 5];
var result = arr. splice(3,2);
console.log(result);// 4,5
console.log(arr);//[1,2,3]
(2).插入 第二个参数写0 表示一个都不删除,返回值:[]
var arr = [1, 2, 3, 4, 5];
var result = arr.splice(2, 0, 'a', 'b')
console.log(result); //[]
console.log(arr);//[1, 2, "a", "b", 3, 4, 5]
(3) 替换 插入的元素个数必须要和删除的元素个数相等
例:
var arr = [1, 2, 3, 4, 5];
var result = arr.splice(1, 2, 'aa', 'bb')
console.log(result); //[2, 3] 替换的元素
console.log(arr);//[1, "cc", "dd", 4, 5]
强调:
(1)直接修改原数组。
(2)返回所有被删除元素组成的子数组。
(3)如果是插入,删除了0个数,那么从start位置开始以及之后的元素会被顺移。
翻转数组:arr.reverse()
var arr = [1, 2, 3, 4, 5];
console.log(arr.reverse());
//输出 [5, 4, 3, 2, 1]
强调:(1)直接修改原数组。
数组排序:arr.sort()
var arr = [3,2,5,6,1];
console.log(arr.sort());
//输出 [1, 2, 3, 5, 6]
强调:
(1)直接修改原数组。
(2)默认按照数组元素第一位的ASCII码从小到大排列。
(3)可以设置下列的比较器函数来控制升序,降序或者打乱。
(4)arr.sort(function(a,b){return a-b;}); 升序(只限数组中是数字或者数字字符串)。
(5)arr.sort(function(a,b){return b-a;}); 降序(只限数组中是数字或者数字字符串)。
(6)arr.sort(function(){
return Math.random()>.5 ? 1 : -1;
});随机打乱数组(数组中可以是任何数据类型)
查找:arr.indexOf(value[,from])或arr.lastIndexOf(value[,from])
var arr = [4,3,6,7,8,9];
console.log(arr7.indexOf(4));
//输出 0
强调:(1)返回value在数组中的位置,没有找到返回-1。
数组末尾添加元素(结尾入栈) push()
例:
var arr = [1, 2, 3, 4, 5];
var result = arr.push('a');
console.log(result); //输出 6
console.log(arr);//[1, 2, 3, 4, 5, "a"]
强调:
(1)修改原数组。
(2)返回新数组的length。
(3)追加进去的数组不会被打散。
**将数组末尾的元素删除(结尾出栈) :pop() **
例:
var arr = [1, 2, 3, 4, 5];
var result = arr.pop();
console.log(result); //输出 5
console.log(arr);//[1, 2, 3, 4]
强调:
(1)修改原数组。
(2)返回被弹出的元素。
数组的开头添加一个元(素开头入栈):arr.unshift(value)
var arr = [1, 2, 3, 4, 5];
var result = arr.unshif('a');
console.log(result); // 6
console.log(arr);//[a,1, 2, 3, 4]
强调:
(1)修改原数组。
(2)返回新数组的length。
删除数组开头的元素 返回值是被删除的元素(开头出栈):arr.shift()
var arr = [1, 2, 3, 4, 5];
var result = arr.shift();
console.log(result); // 1
console.log(arr);//[2, 3, 4, 5]
强调:(1)修改原数组。
(2)返回被弹出的元素。
二、字符串API
前面的是数组AP下面的就是字符串的API啦
**截取:
(1)str.slice(from[,end]) 将原字符串,按指定字符分割为多个子字符串
(2)str.substring(start[,end])
**
例:
var str = "good good";
var result = str.slice(2,5)
console.log(result); // 输出 od (空格占位)
console.log(str);// 原字符串
console.log(str.str.substring(1,3)) // 输出 oo
强调:(1)slice和substring用法类似,只是slice支持负数,而substring的负数会被转换成0,然后截取0和start之间字符。
分割:str.split(“分割符”) 将原字符串,按指定字符分割为多个子字符串
例:
var email = "zizi@qq.com";
var arr = email.splice(/@/);
console.log(arr);// 输出 [zizi,qq.com]
强调:
输出为数组
查找:str.indexOf(value[,from])或str.lastIndexOf(value[,from])
例:
var str = "good good";
result = str.indexOf('good')
console.log(result); //输出0
console.log(str.lastIndexOf("o"));//7
强调:
(1)indexOf()只查找第一个,找不到返回-1。
(2)lastIndexOf()只查找最后一个;
替换:str.replace(“被替换字符”,“替换字符”)
var str = "Xun xun mi mi leng leng qing qing";
var result = str.replace(/xun/ig, "mi");
console.log(result);
//输出 mi mi mi mi leng leng qing qing
强调:(1)只会替换第一个,如果要替换所有符合条件的字符可以使用正则g,i忽略大小写。
拼接:str.concat(value)
例:
var hero = "jack",
heroine = "rose";
var result = hero.concat(" " + heroine);
console.log(result); //输出 jack rose
强调
(1)不改变原字符串
(2)把value拼接到str上,效果类似于str+value
获取指定位置字符:str.charAt(index)
例:
var str = 'abcdefghj';
console.log(str.charAt(5));
//输出 f
去掉字符串前后空格:str.trim()
例:
var str3 = " hello word";
console.log(str3.trim());//输出:hello word
强调:
(1)只去掉前面的空格
字符串转ASCII:str.charCodeAt(index)
ASCII转字符串:String.fromCharCode(Unicode)
** 转大写字母:str.toUpperCase()**
** 转小写字母:str.toLowerCase()**
这几个就不一一举例了
匹配正则的API
str.indexOf(value[,from])
强调:(1)只能查找第一个匹配的位置,没找到返回-1,可用循环改变from查找所有。
str.search(reg)
强调:
(1)仅判断有没有。
(2)只返回第一个匹配的位置,没找到返回-1。
(3)支持正则(不支持g,支持i)。
str.match(reg)
强调:
(1)返回所有正则匹配的字符串组成的数组,没找到返回null。
(2)支持正则,正则表达式必须带g,才能返回所有匹配的字符串。
reg.exec(str)
既能找到关键词的位置,又能获得内容。
强调:
(1)支持正则,找不到返回null。
(2)若要查找所有正则必须加g,不加g只能查找第一个,而且要放进循环里面。