数组方法:
不改变原数组:
1、concat:连接两个或多个数组,并返回结果
var a=[1,2,3]; a.concat([4,5]);
结果:[1, 2, 3, 4, 5]
a;结果:[1, 2, 3]
2、join:把数组的所有元素放入一个字符串,并使用指定的分隔符进行分隔 数组转化为字符串
var a=[1,2,3]; a.join("|");
结果:"1|2|3"
a;结果:[1, 2, 3]
3、slice:从已有数组中选定元素,并返回选定的元素 裁剪
var a=[1,2,3]; a.slice(1,3);
结果:[2,3]
a;结果:[1,2,3]
4、toString:将数组转换成字符串,并返回结果(与无参数的join方法返回结果一致),使用逗号进行分隔
var a=[1,2,3]; a.toString();
结果"1,2,3"
a;结果:[1,2,3]
5、map:格式化数组 改变内容
var a=[1,2,3,4,5];
var b=a.map(function(current,index,array){return current + )
b:[2,3,4,5,6]
a:[1,2,3,4,5]
6、filter:过滤 根据条件判断,返回数组中满足条件的元素组成的新数组 current:当前值 index:当前值下标 array:这个数组对象
var a=[1,2,3,4,5];
var b = a.filter(function(current,index,array){return current < 10})
b:[1,2,3,4]
a;[1,2,3,4,11]
改变原数组
1、pop:删除并返回数组的 最后一个元素
var a=[1,2,3]; a.pop();
结果:3
a;结果:[1,2]
2、shift:删除并返回数组的 第一个元素
var a=[1,2,3]; a.shift();
结果:1
a;结果:[2,3]
3、push:向数组的末尾添加元素,并返回数组的长度
var a=[1,2,3]; a.push(4,5);
结果:5(数组长度)
a;结果:[1, 2, 3, 4, 5]
4、reverse:颠倒数组中元素的顺序,并返回结果
var a=[1,2,3]; a.reverse();
结果:[3, 2, 1]
a;结果:[3, 2, 1]
5、unshift:在数组的开始位置添加元素,并返回数组长度
var a=[1,2,3]; a.unshift(4,5);
结果:5(数组长度)
a;结果:[4, 5, 1, 2, 3]
6、splice:向数组内添加/删除元素,并返回删除的元素
var a=[1,2,3]; a.splice(1,1);
结果:[2]
a;结果:[1, 3]
7、sort:对数组进行排序,并返回排序结果
var a=[1,2,3]; a.sort();
结果:[1, 11, 2, 3]
a;结果:[1, 11, 2, 3]
字符串方法
先定义一个字符串 var str = “abbcalgldkjgldgehlgjldf”;
1,indexOf(),返回指定字符创第一次出现的位置。
str.indexOf('a') //结果是0
2,lastIndexOf(),返回指定字符串最后一次出现的位置。
str.lastIndexOf('f') //结果是22
3,substring(),提取字符串中两个指定索引号之间的字符(两个索引不能为负值)
str.substring(0,5) //结果是abbca
4,slice(), 提取字符串中两个指定索引号之间的字符(索引可以为负值,-1就是倒数第二位)
str.slice(0,-5) //结果是abbcalgldkjgldgehl
5,charAt(),返回指定索引的字符
str.charAt(1) //结果是b
6,concat(),连接两个或多个字符串,返回连接后的新字符串。
var str2 = "1";
str.concat(str2) 结果是abbcalgldkjgldgehlgjldf1
7,split(),把字符串分割为子字符串数组
str.split() 结果是["abbcalgldkjgldgehlgjldf"]
8,toString(),返回字符串对象,比如把数字转换成字符串对象。
9,trim(),移除字符串首位空格,经常在对input和textarea的值做判断时用到。
10,toLowerCase(),把字符串转换成小写的。
11,toUpperCase(),把字符串转换成大写的。
12,match(),找到一个或者多个子串或者正则表达式的匹配。
13,replace(),替换指定子串或者与正则表达式匹配的子串。
14,search(),检索指定子串或者与正则表达式匹配的值,返回的值是数字。
Number方法
var num = Number(5.123); //5.123
1、toString() 使用指定进制,将一个数字转换为字符串。
document.write(num.toString() + "<br/>"); //5.123
2、toLocaleString() 将一个数字转换为本地数字格式的字符串。
3、toFixed() 将一个数字转换为包含指定小数位数的字符串。
document.write(num.toFixed(2) + "<br/>"); //5.123
4、toExponential() 讲一个数字转换为字符串,使用指定数目的有效数字。
document.write(num.toPrecision(2) + "<br/>"); //5.123
5、valueOf() 返回一个Number对象的原始值。
document.write(num.valueOf() + "<br/>"); //5.123
6、toExponential() 用指数计数法格式化一个数字
document.write(num.toExponential(1)); //5.1e+0
对象方法
属性:firstName 值:Bill
属性:lastName 值:Gates
属性:age 值:62
属性:eyeColor 值:blue
属性:fullName 值:function() {return this.firstName + " " + this.lastName;}
spice()
删除:(1,2) 第一项的位置,删除的个数
添加:(1,0,2) 起始位置,0(要删除的项数),要添加的项
替换:(1,2,3) 起始位置,删除的项数,添加的项数
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
对象合并
Object.assign(obj,ajax)
{...obj,..ajax}
数组迭代的方法
- forEach() 参数index为数组索引号,val为对应索引号的值
- map() 返回一个新数组
- filter 用于筛选符合条件的数组元素,返回一个新数组
- some 用于检测数组中是否有符合条件的元素,它返回一个布尔值
- reduce 用于遍历求和,它有两个参数,参数一中也可以有两个参数,参数一的one为上一次的返回值,two为遍历数组的当前值
foreach 和 map 的区别
相同点:循环遍历数组中的每一项、
每次执行匿名函数都支持3个参数(item,index,arr)
匿名函数中的this都是指向window、只能遍历数组
不同点:forEach 没有返回值。map有返回值可以return 出来。
foreach 和 map 和 filter 的区别
map:对数组中的每一项运行给定函数,
返回每次函数调用的结果组成的数组。有返回值
forEach:对数组的每一项运行给定函数,这个方法并没有返回值。
filter:不对空数组检测,空数组返回underfined,对原数组过滤筛选,
返回新数组
数组去重
es6的set对象:[...new Set(arr)]
双层for循环,逐一对比,有相同的只取一位
使用sort排序相邻比较,再用splice去除重复元素
使用indexof查找元素第一次出现的位置是否为当前位置,
若是就放进新数组中,或者findIndex查找
some方法
数组常用方法:
- for,数组常规遍历方法
- forEach,只是遍历,没有返回值
- map,遍历,返回一个新数组
- some,只要有一个符合就返回true
- every,必须全部都一致才会返回
- filter,数组的过滤,返回数组
- fill,填充数组
- sort,正序排序,会修改原数组
- reverse,数组倒序排序,会修改原数组
- pop,从尾部删除并返回被删除项
- push,向尾部添加
- shift,从头部删除并返回被删除项
- unshift,向头部添加
- splice,对数组增删改,修改原数组
- slice,对数组截取,返回新数组,不修改原数组
- reduce,从左向右累计计算
- reduceRight,从右向左累计计算
- concat,合并数组
- flat,将数组降维
- join,把数组转为字符串
- find,找出匹配的第一个元素,找不到返回null
- findIndex,查找匹配的下表,找不到返回null
- indexOf,从前面开始查找,找到下标,不存在返回下标
- lastIndexof,从最后一个元素查找
- resolve : 反转数组
- Array.of,把值转为一个项的数组
- Array.form,把为数组转为数组
对象常用方法:
- Object.keys(),将对象的属性名转为数组
- Object.entries,将对象以键值对分割成数组
- Object.values(),将对象的属性值转为数组
- Object.assign(),将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象