字符窜

substring(start开始位置的索引,end结束位置索引) 截取的位置不包含结束位置的字符,只写一个参数表示从开始位置截取到最后

1
2
3
var str='abcdefg'; 
str.substring(1) //得到bcdefg
str.substring(1,3) //得到bc

输入负值时将负值变为0,哪个较小作为开始位置

1
2
3
var str='abcdefg';
str.substing(-1,1) =>str.substring(0,1) //a
str.substring(1,-2) =>str.substring(0,1) //a

2.slice(start开始位置索引,end结束位置索引) 基本和substring相似,区别在参数为负数。

1
2
3
var str='abcdefg';
str.slice(1) //bcdefg
str.substring(1,3) // bc

输入负值时 值与字符串的长度相加

1
2
3
4
var str='abcdefg';
str.slice(-1) =>str.slice(6) //g
str.slice(1,-2) =>str.slice(1,5) //bcde
str.slice(-2,-1)=>str.slice(5,6) //f

输入值绝对值大于字符串的长度时变为 0

1
2
var str='abcdefg';
str.slice(-22) =>str.substring(0) //abcdefg

第二个参数绝对值大于字符串的长度时,返回’’

1
2
var str='abcdefg';
str.slice(22) =>str.substring(0) //''

3.substr(start开始位置索引,end需要返回的字符个数)

1
2
3
var str='abcdefg';
str.substr(1) //bcdefg
str.substr(1,1) //b

输入负值时 start参数与字符串的长度相加 ,end为负时参数变为0

1
2
3
var str='abcdefg';
str.substr(-1) =>str.substr(6)//g
str.substr(-2,-3) // ''

4.charAt(index) 方法返回指定索引位置处的字符。如果超出有效范围(0与字符串长度减一)的索引值返回空字符串.

1
2
var str='abcdefg';
str.charAt(2) // c

5.indexOf(string) 返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。

1
2
var str='abcdefga' 
str.indexOf('a') // 0 str.indexOf('h') //-1

6.lastIndexOf(string) 倒叙查找,

1
2
var str='abcdefga' 
str.lastIndexOf('a') // 7

字符串转化数组

split(str) 将字符串以参数分割为数组

1
2
var str='abcadeafg' 
str.split('a') //["", "bc", "de", "fg"]

1.toLowerCase方法返回一个字符串,该字符串中的字母被转换成小写。

1
2
3
var a = 'ASD'
var b = a.toLowerCase()
console.log(a,b) // ASD asd

2.toUpperCase方法返回一个字符串,该字符串中的所有字母都被转换为大写字母。

3.match() – 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

1
2
3
4
5
6
var str="Hello world!"
str.match("world")
str.match("World")
str.match("worlld")
str.match("world!")
// ['world'] null null ['world!']
1
2
3
var str="1 plus 2 equal 3"
var b = str.match(/\d+/g)
// ["1", "2", "3"]

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

1
2
3
4
5
6
var str="Visit Runoob!"; 
var n=str.search("Runoob");
// 6
var str="Mr. Blue has a blue house";
document.write(str.search(/blue/i)); // 执行一次忽略大小写的检索:
// 4

5.replace 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配。

1
2
3
var text = "javascript Tutorial";
var a = text.replace(/javascript/i, "JavaScript");
console.log(text, a) // javascript Tutorial JavaScript Tutorial

数组

1.slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,包含从start到end(不包含该元素)的数组元素

该方法不会改变原有数组

1
2
3
4
var a = [1,2,3,4,5]
var b = a.slice(0,1)
console.log(a,b)
// [1, 2, 3, 4, 5] [1]

同时slice(start,end)可以作用于字符串的切割

1
2
3
4
var a = 'asdzxc123'
var b = a.slice(0,3)
console.log(a, b)
// asdzxc123 asd

2.splice(index,howmany,item1,…itemX):该方法向或者从数组中添加或者删除项目,返回被删除的项目。(该方法会改变原数组)

index参数:必须,整数,规定添加或者删除的位置,使用负数,从数组尾部规定位置。
howmany参数:必须,要删除的数量,如果为0,则不删除项目。
tem1,…itemX参数:可选,向数组添加的新项目。

1
2
3
4
var c = [1,2,3,4,5]
var d = c.splice(0,4)
console.log(c,d)
// [5] [1,2,3,4]
1
2
3
4
var a = [1,2,3,4]
var b = a.splice(1,0,'a')
console.log(a,b)
// [1, "a", 2, 3, 4] []
方法名 功能 demo 结果
push 添加到(最后) 返回添加后的数组 var a = [1,2,3];var b = a.push(4);console.log(a,b) [1, 2, 3, 4] 4
unshift 添加到(最前面) 返回添加后的数组 var a = [1,2,3];var b = a.unshift(4);console.log(a,b) [4, 1, 2, 3] 4
pop 删除(最后一项) 返回处理后的数组 var a = [1,2,3];var b = a.pop();console.log(a,b) [1, 2] 3
shift 删除(从前面) 返回处理后的数组 var a = [1,2,3];var b = a.shift();console.log(a,b) [2, 3] 1

数组转化字符窜

join 数组转化为字符串

1
2
3
4
var arr=[1,2,3,4,5]
str=arr.join('--');
console.log(str); // 1--2--3--4--5 以join内的参数切割数组
console.log(arr); // [1,2,3,4,5] 原数组未变

concat 数组合并

every();对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true

some ();对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返true

filter();对数组组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组

forEach();对数组中的每一项运行给定函数。这个方法没有返回值。

map();对数组中的每—项运行始定函数,返回每次函数调用的结果组成的数组。

arr.forEach(item,index,array){} 遍历,循环 类似jquery的each

map方法 映射 用法和forEach类似

1
2
3
4
5
6
7
8
9
var men=[
{'name':1,'age':12},
{'name':2,'age':22},
{'name':3,'age':33}
];
age=men.map(function(item){
return item.age;
})
//[12, 22, 33]

arr.sort 排序

1
2
var arr=[1,2,22,11,33,3,5,4];
console.log(arr.sort()) // [1,11,2,22,3,33,4,5]

默认情况下sort方法是按ascii字母顺序排序的,而非我们认为是按数字大小排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var a = [1,1,10,2,4,9,5,3]
function compare(v1,v2) {
if (v1>v2) {
return 1
} else if(v1<v2) {
return -1
} else if (v1===v2){
return 0
}
}
var b = a.sort(compare)
console.log(b) // [1, 1, 2, 3, 4, 5, 9, 10]

var a = [1,1,10,2,4,9,5,3]
function compare(v1, v2){
return v2-v1
}
var b = a.sort(compare)
console.log(b) // [10, 9, 5, 4, 3, 2, 1, 1]

var a = [1,1,10,2,4,9,5,3]
function compare(v1, v2){
return v1-v2
}
var b = a.sort(compare)
console.log(b) // [1, 1, 2, 3, 4, 5, 9, 10]

reduce 可以用来执行求数组所有值得总和

1
2
3
4
5
var a = [1,2,3,4,5]
var sum = a.reduce(function(prev, cur, index, array){
return prev + cur
})
console.log(sum) // 15

reduce和reduceRight的唯一区别是,一个是从第一个开始加,第二个是从最后一项开始计算加,其余无任何区别