js常用方法总结
来源:互联网 发布:大学生分期借贷软件 编辑:程序博客网 时间:2024/05/17 02:33
string 常用方法:
1.substring(start开始位置的索引,end结束位置索引) 截取的位置不包含结束位置的字符,只写一个参数表示从开始位置截取到最后
var
str=
'abcdefg'
;
str.substring(1)
//得到bcdefg str.substring(1,3) //得到bc
输入负值时将负值变为0,哪个较小作为开始位置
str.substing(-1,1) =>str.substring(0,1) //a
str.substring(1,-2) =>str.substring(0,1) //a
2.slice(start开始位置索引,end结束位置索引) 基本和substring相似,区别在参数为负数。
var
str=
'abcdefg'
;
str.slice(1)
//bcdefg str.substring(1,3) // bc
输入负值时 值与字符串的长度相加
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
str.slice(-22) =>str.substring(0) //abcdefg
第二个参数绝对值大于字符串的长度时,返回''
3.substr(start开始位置索引,end需要返回的字符个数)
var
str=
'abcdefg'
;
str.substr(1)
//bcdefg str.substr(1,1) //b
输入负值时 start参数与字符串的长度相加 ,end为负时参数变为0
str.substr(-1) =>str.substr(6)
//g
str.substr(-2,-3)
// ''
4.charAt(index) 方法返回指定索引位置处的字符。如果超出有效范围(0与字符串长度减一)的索引值返回空字符串.
var
str=
'abcdefg'
;
str.charAt(2)
// c
5.index(string) 返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。
var str='abcdefga' str.indexOf('a') // 0 str.indexOf('h') //-1
6.lastIndexOf(string) 倒叙查找
返回String对象内第一次出现子字符串位置。如果没有找到子字符串,则返回-1。
var str='abcdefga' str.lastIndexOf('a') // 7
7.split(str) 将字符串以参数分割为数组
var str='abcadeafg' str.split('a') //["", "bc", "de", "fg"]
8. toLowerCase方法返回一个字符串,该字符串中的字母被转换成小写。
9. toUpperCase方法返回一个字符串,该字符串中的所有字母都被转换为大写字母。
10.match() – 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
11.search 方法返回与正则表达式查找内容匹配的第一个字符串的位置。
12.replace 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配
http://www.cnblogs.com/bijiapo/p/5451924.html
数组常用的方法
1. push 添加到最后 返回添加后的数组
2. unshift 添加到最前面 返回添加后的数组
3. shift 删除(从前面) 返回处理后的数组
4. pop 删除最后一项 返回处理后的数组
5. reverse 数组翻转 返回处理后的数组
6. join 数组转化为字符串
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] 原数组未变
7. slice(start,end) 截取数组 从start(开始) 到end(结束 不包含)
返回新数组,原数组不变
var
arr=[1,2,3,4,5],
new
=arr.slice(2,4);
console.log(
new
);
// [3,4]
console.log(arr);
// [1,2,3,4,5]
8. concat 数组合并
9. splice(开始下标,个数,ele1,ele2....) 剪接数组
(1).一个参数 从参数位置截取 填写负数类似上面str slice 返回截好的数组 原数组变化
var
arr=[1,2,3,4,5];
console.log(arr.splice(1));
// [2,3,4,5]
console.log(arr);
// [1]
console.lgo(arr.splice(-1))
// [5]
(2).二个参数 截取 (开始位置,个数) 返回截好的数组 原数组变化
var
arr=[1,2,3,4,5];
console.log(arr.splice(1,3));
// [2,3,4]
console.log(arr)
// [1,5]
arr.splice(0,1) =>arr.shift()
arr.splcie(arr.length-1,1) =>arr.pop()
(3).添加 原数组增加
var
arr=[1,2,3,4,5];
console.log(arr.splice(1,0,13));
// []
console.log(arr);
// [1,13,2,3,4,5]
(4).替换
var
arr=[1,2,3,4,5];
console.log(arr.splice(1,2,
'a'
,
'b'
))
// [2,3]
console.log(arr);
// [1,'a','b',4,5]
arr.splice(0,0,1) =>arr.unshift(1);
arr.splice(arr.length,0,1) => arr.push(1)
10. arr.forEach(item,index,array){} 遍历,循环 类似jquery的each
其中的item参数是数组中的内容,index为其索引,array表示数组本身
var
arr=[1,2,3,4,5];
arr.forEach(
function
(item,index,array){
})
遇到嵌套跳出循环出现问题,暂时没有解决;
11. map方法 映射 用法和forEach类似
var
men=[
{
'name'
:1,
'age'
:12},
{
'name'
:2,
'age'
:22},
{
'name'
:3,
'age'
:33}
],
age=men.map(
function
(item){
return
item.age;
})
12. arr.sort 排序
var
arr=[1,2,22,11,33,3,5,4];
console.log(arr.sort())
// [1,11,2,22,3,33,4,5]
默认情况下sort方法是按ascii字母顺序排序的,而非我们认为是按数字大小排序
arr.sort(function(a,b){ return a-b})
a-b从小到大 b-a从大到小
13. 顺便写写我知道的排序方法
(1)冒泡排序 每次比较相邻的两个数,如果后一个数比前一个数小,换位置
function
bSort(arr){
var
tmp;
for
(
var
i=0,len=arr.length-1;i<len;i++){
for
(
var
j=0;j<len;j++){
if
(arr[j]>arr[j+1]){
//换位置
tmp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=tmp;
}
}
}
return
arr;
}
function
bSort(arr){
var
tmp;
arr.forEach(
function
(item,i){
arr.forEach(
function
(item,i){
if
(item>arr[i+1]){
//换位置
tmp = arr[i + 1];
arr[i + 1] = arr[i];
arr[i] = tmp;
}
})
})
return
arr
}
(2)快速排序 二分法,找到中间的数,取出来(新数组),原数组没,每次和此数比较,小的放到左边,大的放到右面
function
fastSoft(arr){
var
len=arr.length;
if
(len<=1){
return
arr}
var
cIndex=Math.floor(len/2),
c=arr.splice(c,1),
left=[],
right=[];
arr.forEach(
function
(item,i){
if
(item<c[0]){
left.push(item);
}
else
{
right.push(item);
}
})
return
fastSoft(left).concat(c,fastSoft(right));
}
14. 数组的去重也写下吧
(1)双层循环不是很好
var
arr=[2,3,2,2,2,4,5],
arr2=[];
function
find(arr2,ele){
for
(
var
i= 0,len=arr2.length;i<len;i++){
if
(arr2[i]==ele)
return
true
;
}
return
false
;
}
for
(
var
i= 0,len=arr.length;i<len;i++){
if
(!find(arr2,arr[i])){
arr2.push(arr[i]);
}
}
(2)利用json的key值无重复
var
arr=[2,3,2,2,2,4,5],
json={},
arr2=[];
arr.forEach(
function
(item,i){
if
(!json[item]){
json[item]=222;
}
});
for
(
var
name
in
json){
arr2.push(Number(name));
//类型发生变化了
}
(3) 利用sort方法排序,去掉旁边相同项
var
arr=[2,3,2,4,4,4,5],
arr2=[];
arr.sort();
for
(
var
i=0;i<arr.length;i++){
if
(arr[i]==arr[i+1]){
arr.splice(i--,1);
}
}
一些常见数学方法
math.abs() 取绝对值 math.ceil() 向上取整 math.floor() 向下取整
math.round() 四舍五入 math.roundom
function
getRan(n,m){
return
Math.floor(Math.random()*(m-n)+n);
}
数组和字符串的一些综合应用
1. 截取后缀名
(1) var str='1.xxx.avi';
str=str.substring(str.lastIndexOf('.')+1);
(2) var str='1.xxx.avi';
var
arr=str.split(
'.'
);
console.log(arr[arr.length-1]);
2.字母翻转,首字母大写
var
str=
'wo shi yi ge demo'
,
arr=str.split(
' '
);
for
(
var
i=0;i<arr.length;i++){
console.log()
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
}
arr.reverse();
str=arr.join(
' '
);
3. str中字符出现次数的统计
var
str=
'aaaandkdffsfsdfsfssq12345'
,
json={},
n= 0,
sName;
for
(
var
i= 0,len=str.length;i<len;i++){
var
Letter=str.charAt(i);
//统计次数
if
(json[Letter]){
json[Letter]++;
}
else
{
json[Letter]=1;
}
}
//找最大
for
(
var
name
in
json){
if
(json[name]>n){
n=json[name];
sName=name;
}
}
console.log(
'出现最多的字母'
+sName+
'次数为'
+n);
4. 简单的url参数解析
function
getData() {
var
search = window.location.search.substring(1);
if
(!search) {
return
;
}
var
arr = search.split(
'&'
),
arr2 = [],
json = {},
key,
alue;
for
(
var
i = 0; i < arr.length; i++) {
arr2 = arr[i].split(
'='
);
key = arr2[0];
value = arr2[1];
json[key] = value;
}
return
json;
}
- 常用js方法总结
- 常用js方法总结
- js 常用方法总结
- js常用方法总结
- js常用方法总结
- 常用js 工具方法总结
- Underscore.js常用方法总结
- JS数组常用方法总结
- js 数组常用方法总结
- js数组常用方法总结
- JS字符串常用方法总结
- js string()常用方法总结
- web js常用方法总结
- js字符串常用方法总结
- js中常用方法总结
- js常用方法使用总结
- JS常用方法的一些总结一
- jquery+js+html常用方法总结
- APP生产线构建------ErrorProne实施
- MAC 改变硬盘大小
- 【MySQL】(1)mysql-5.6.22-winx64数据库的安装、配置、简单使用
- 数据结构之查找
- Eclipse Maven创建Java Web项目
- js常用方法总结
- xpath contains
- springCloud(一)
- 【js基础】原生js实现模态弹窗效果
- java中的自定义异常
- rabbitMQ安装后启动web管理工具rabbitmq_management 时在dos 窗口出现Rabbitmq installation error
- Linux运维进阶-文档总结-LNMY架构之Mysql的安装和配置
- 新一代人工智能知识体系大全
- D