js数组,字符串常用方法

javascript数组,字符串,math常用方法

array.filter()过滤函数,返回符合条件的item 不会改变原数组

1
2
3
4
5
6
7
8
 var arr = [1, 2, 3, 3, 2];
var r = arr.filter(function (item, index, self) {
console.log(item); // 依次打印'A', 'B', 'C'
console.log(index); // 依次打印0, 1, 2
console.log(self); // self就是变量arr
return item==2;
});
// console.log(r) [2,2] 返回符合条件的所有元素

array.every() 方法用于检测数组所有元素是否都符合指定条件,所有符合返回true,不符合返回false 不会改变原数组

1
2
3
4
5
var arr = [1, 2, 3];
var r = arr.every(function (item, index, self) {
return item>4;
});
//console.log(r) false 数组中所有元素都小于4

array.some() 方法用于检测数组中的元素是否满足指定条件,有一个满足就返回true

1
2
3
4
5
6
7
8
9
10
 var arr = [1, 2, 3];
var r = arr.some(function (item, index, self) {
return item>2; //console.log(r) 由于3满足条件,返回true
});
array.reduce() 方法接收一个函数作为累加器,累加数组的值。

var arr = [1, 2, 3];
var r = arr.reduce(function (total,item, index, self) { //total用来保存累加结果的,初始值为0;
return total+item; // 结果返回6
});
1
2
3
4
5
6
7
8
array.map() 方法按照原始数组元素顺序依次处理元素,可返回新数组,但不会改变原数组

var arr = [1, 2, 3];
var r = arr.map(function (item, index, self) {
return item*2; //1,2,3 循环输出数组所有信息,可在此处理业务逻辑
});
console.log(r) //[2, 4, 6]
console.log(arr) //[1, 2, 3]

array.find() 方法用来返回数组中满足条件的第一个元素 不会改变原数组

1
2
3
4
5
var arr = [1, 2, 3];
var r = arr.find(function (item, index, self) {
return item>=2;
});
//console.log(r) 2 返回满足条件的第一个元素

array.forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数,可用于遍历数组。

1
2
3
4
var arr = [1, 2, 3];
arr.forEach(function (item, index, self) { //特别注意forEach返回值为undefined
console.log(item); //1,2,3 循环输出数组所有信息,可在此处理业务逻辑
});

for /for…in 遍历数组

for循环:

1
2
3
4
5
6
7
var arr = ["Banana", "Orange", "Apple", "Mango"];

for(var i=0,length=arr.length;i<length;i++){

console.log( arr[i]) // Banana Orange Apple Mango

}

//遍历出数组的每一项

for….in:

1
2
3
4
5
6
7
var arr = ["Banana", "Orange", "Apple"];

for(var index in arr){

console.log(arr[index])//Banana Orange Apple

}

array.indexOf(item,start) 方法可返回某个指定的字符串值在字符串中首次出现的位置。

1
2
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");//a=2

array.join(separator)将数组按特定分割符组合成字符串(数组=>字符串)

1
2
3
var arr = [1, 2, 3];
arr.join('');//返回"123"
arr.join('a');//返回"1a2a3" 不改变原数组

array.toString()将数组转为字符串,并以逗号隔开(数组=>字符串)

1
2
var arr= ["a", "b", "c", "d"];
var arrstring = arr.toString();//arrstring = "a,b,c,d" ,不改变原数组

Array.isArray(obj)判断对象是否是数组

1
2
3
4
var arr = [1, 2, 3];
var obj= {name:"cgd"};
Array.isArray(arr) //true
Array.isArray(obj) //false

#数组的堆栈操作 删除操作返回删除元素,添加操作返回新的长度,均会改变原数组

1
2
3
4
5
var arr = ["a", "b", "c", "d"];  //以下操作单独执行
arr.pop(); //arr 输出为["a", "b", "c"] 删除数组末尾元素
arr.push("e","f") //arr 输出为["a", "b", "c", "d", "e", "f"] 向数组末尾添加元素
arr.shift() //arr 输出为["b", "c", "d"] 删除数组第一个元素
arr.unshift("e","f") //arr 输出为["e","f","a","b", "c", "d"] 向数组开始添加元素

array.concat(arr1) 数组之间连接 arr和arr1连接成一个新的数组,原数组都不变,返回新数组

1
2
3
4
5
var arr = ["a", "b", "c", "d"];  

var arr1 = ["e", "f", "g", "h"];

var c=arr.concat(arr1) //["a", "b", "c", "d", "e", "f", "g", "h"]

array.splice(index,howmany,item1,…..,itemX) 方法用于插入、删除或替换数组的元素,这种方法会改变原始数组,很强大

index 表示开始位置,
howmany 表示删除多少个必须为数字,可以为0表示不删除,如果不填的话会从index位置删到最后
item1 表示要添加到数组的新元素

1
2
3
4
5
6
7
8
9
10
var arr= ["a", "b", "c", "d"];
arr.splice(2,1,"e","f"); //["a", "b", "e", "f", "d"] 从位置为2的地方删除一个元素并添加两个元

array.slice(index1,index2) 参数index可正可负,包含arr[index1],不包含arr[index2],原数组都不变,返回截取的新数组

var arr=["a", "b", "c", "d", "e", "f", "g", "h"]

var arrNew=arr.slice(3,-1) //["d", "e", "f", "g", "h"]

var arrNew=arr.slice(1,3) //["b", "c"]

array.reverse() 方法用于颠倒数组中元素的顺序。(元素反转)

1
2
var arr = [1, 2, 3];
arr.reverse() // console.log(arr) 输出[3,2,1]

array.sort(sortfunction)对数组进行排序,没传递函数时,按升序排

1
2
3
4
var arr= [40,100,1,5,25,10];
arr.sort(function(a,b){return a-b}); //升序排列[1,5,10,25,40,100]

arr.sort(function(a,b){return b-a}); //降序序排列[100, 40, 25, 10, 5, 1]

拓展:取数组的最大值/最小值

1
2
3
4
5
6
7
8
9
10
11
var min = arr[0]; //升序时最小值,逆序时最大值

var max = arr[arr.length - 1]; //升序时最大值,逆序时最小值

通过Math.max.apply(null, arr);Math.min.apply(null, arr);

var arr = [22,13,6,55,30];

var max = Math.max.apply(null, arr); //最大值

var min = Math.min.apply(null, arr);//最小值

通过ES6扩展符

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 arr = [22,13,6,55,30]; console.log(Math(...arr));

array.valueOf() 返回数组的原始值

var arr= ["a", "b", "c", "d"];
arr.valueOf() //返回原数组,不改变原数组
-

array.fill() 使用一个固定值来填充数组。

var arr=[];

arr.length=3;

arr.fill(2);//[2,2,2]

### 二.字符串的常用方法:

var str = ‘abcd’

str.charAt(0); //输出下标位置的字符

str.charCodeAt(0);//输出下标位置的字符编码值

str.concat(‘e’); //输出拼接后的字符串

str.indexOf(‘c’); //输出指定字符的下标位置

str.lastIndexOf(‘c’); //从后向前搜索输出指定字符的下标位置

str.length; //输出字符串长度

str.localeCompare(‘efg’); //按照字母表顺序规则比较,输出比较结果,靠前输出1,靠后输出-1,相等输出0

str.search(‘a’); //输出指定字符的下标位置

str.slice(1,5); //输出指定开始下标到结束下标的字符,但不包括结束位置的字符

str.split(‘c’); //输出字符串以指定字符分割为数组

str.substr(0,2); //输出指定下标后面指长度的字符

str.substring(0); //如果没有指定结束位置下标,将输出指定开始下标到最后下标的字符

str.substring(0,3); //输出指定开始下标到结束下标的字符,但不包括结束位置的字符。如果参数为负数,自动转换参数为0。如果第二个参数小于第一个参数,自动调换参数位置

str.toLowerCase(); //输出转换为小写字母的字符

str.toString(); //把其他类型的数据输出为字符串类型的数据

str.toUpperCase(); //输出转换为大写字母的字符

String.fromCharCode(10000); //把Unicode编码转换成对应的文字

str.trim();//去掉字符串的首位空格

三.Math的常用方法:

Math.abs():绝对值              Math.abs(1) // 1            Math.abs(-1) // 1
Math.ceil():向上取整      Math.ceil(3.2) // 4         Math.ceil(-3.2) // -3
Math.floor():向下取整    Math.floor(3.2) // 3            Math.floor(-3.2) // -4
Math.max():最大值         Math.max(2, -1, 5) // 5    
Math.min():最小值         Math.min(2, -1, 5) // -1
Math.pow():指数运算     Math.pow(2, 3) // 8  2³=8
Math.sqrt():平方根      Math.sqrt(4) // 2    Math.sqrt(-4) // NaN
Math.log():自然对数    Math.log(Math.E) // 1     Math.log(10) // 2.302585092994046
Math.exp():e的指数    Math.exp(1) // 2.718281828459045  e²=7.38905609893065
Math.round():四舍五入  
Math.random():随机数 范围[0,1)   Math.random() // 0.7151307314634323  

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!