数组常用方法
1.push和 pop , push往数组最后添加进去一项, pop向数组最后删除一项 , push和pop是一对栈操作 , 遵循先进后出 后进先出
var arr[1,2,3]
console.log(arr.push(4)) // [1,2,3,4]
console.log(arr.pop()) // [1,2]
2.shift个unshift shift是往数组最前面删除一项, unshift是往数组最前面添加一项 , shift和unshift是堆操作 ,遵循先进先出 后进后出
var arr[1,2,3]
console.log(arr.shift()) // [2,3]
console.log(arr.unshift(1)) // [4,2,3]
3, join 将数组转换成字符串
var arr[1,2,3]
// console.log(arr.join(';'));
4.sort 对数组进行排序 会对数据进行挨个对比 另外 sort不传参的话 将会优先把数字排在前面 字母按unicode 编码进行排序
var arr =[2,56,30]
arr.sort(sortNumber)
function sortNumber(a,b){
return a-b
}
console.log(arr); //[2,30,56] 从小到大
function sortNumber(a,b){
return b-a
}
console.log(arr); //[56,30,2] 从大到小
5.reverse() 用于翻转数组
var arr =[2,56,30]
console.log(arr); //[56,30,2]
6.slice() 开始参数从索引0开始 结束参数从索引1开始,并返回截取的数组
并且 arr.slice(0) 可以浅拷贝数组
var arr =[2,56,30]
console.log(arr.slice(1,2)); // [56]
console.log(arr.slice(1,3)); // [56,30]
7.splice() 删除数组数据 参数一表示开始位置索引0开始, 参数二表示截取几个从索引0开始, 并返回截取之后数组
var arr =[2,56,30]
console.log(arr.splice(1,2)); // [56,30]
8.indexof 参数一个表示查找的内容 第二个参数表示从第几个开始查找 索引0开始 找到返回值索引否则返回-1
console.log(arr.indexOf(3,1)); //1
下面介绍几个不会改变原数组的方法
9.forEach forEach不会改变原数组 跟for循环区别在于没有长度的限制 跟forin区别在于forin可以遍历数组跟对象 forEah只能遍历数组
// let aa =[]
// arr.forEach((item,index,arr)=>{
// if(item>=50){
// aa.push(item)
// }
// })
// console.log(aa); //[100,50]
10.filter() 过滤不会改变原数组 创建一个新的数组 并将结果return出去
// let result=arr.filter(item=>{
// return item<=50
// })
console.log(result); // [ 3, 50 ]
11.map() 返回一个新数组 不会改变原数组 并且也需要return
// let result=arr.map(item=>{
// return item<=50
// })
console.log(result); // [ 3, 50 ]
12. some() 判断数组中 是否有一项满足条件 则停止执行 返回true或false
let result=arr.some(item=>{
return item<=50
)
console.log(result) // true
13.every 判断数组中是否全部满足条件 则停止执行 返回true 或false
let result=arr.every(item=>{
return item<=50
)
console.log(result) // true
14. reduce() 归并 total没有指定的话 那就是赋值第一项100 可以理解为如果没有指定那就是从第二项开始循环 ,currect表示当前项的值,index表示当前项索引,arr表示原数组
数组相加
var arr = [100, 3, 50]
let result =arr.reduce((total,currect,index,arr)=>{
console.log(total,currect,index); 第一次打印 100 3 1
return total_currect // return出去103再次返回给total
)
console.log(result); //153
15.array.from() 将对象中拥有length属性的对象 转化成数组
let json={
0:'11',
2:'22',
1:'33',
length:3
}
let result=Array.from(json)
console.log(result); //[ '11', '33', '22' ]
16.array.of() 将一组值转换成数组 任意类型 都会被数组包裹
var obj={ name: '张三', age: 2 }
let result=Array.of(obj)
console.log(result); // [ { name: '张三', age: 2 } ]
17.find() 遍历数组 返回第一个满足条件的值 不会改变原数组
var arr = [100, 3, 50]
// let result =arr.find((cur,index,arr)=>{
// return cur<=50
// })
console.log(result); //3
18.findIndex遍历数组 返回第一个满足条件的值的索引 没有则返回-1
var arr = [100, 3, 50]
// let result =arr.findIndex((cur,index,arr)=>{
// return cur<=50
// })
console.log(result); //1
19.fill 用于使用固定的值 替换数组的值 参数一表示固定的值 参数二是开始位置 从索引0开始 参数三是截止位置 从索引1开始
var arr = [100, 3, 50]
let result =arr.fill(0,1,3)
console.log(result); [ 100, 0, 0 ]
20.includes() 数组满足条件的并返回true 或false
let result =arr.includes(3)
console.log(result); //true
对象常用方法
1.object.assign() 从第二个参数开始 将后面所有对象合并到第一个参数中 如果前后参数名有重复 则会被后面参数同步
var obj = { name: '张三', age: 2 }
var obj1 = { names: '李四', ages: 3 }
var result =Object.assign({},obj,obj1)
console.log(result); //{ name: '张三', age: 2, names: '李四', ages: 3 }
2.object.is() 判断两个参数否指向同一个对象 否则返回false
var obj = { names: '李四', ages: 3 }
var obj1 = { names: '李四', ages: 3 }
console.log(Object.is(obj,obj1)); //false
3.object.keys() 遍历对象 返回属性名数组
console.log(Object.keys(obj)); // [ 'name', 'age' ]
4.hasOwnProperty() 判断对象是否包含这个属性名(key) 返回true 或者false
console.log(obj.hasOwnProperty('name')); //true
字符串基本方法
1.toString() 将值转换成字符串
var num=3
console.log(typeof num.toString()); //string
2.split() 将字符串分割成数组 括号里面的就是以什么作为判断来分割
var str = ' hello,word '
console.log(str.split(', ')); //[ ' hello', 'word ' ]
3.indexof() 第一个参数是查找的内容 第二个参数从哪开始查找 索引0开始 找到返回当前值索引 否则返回-1
console.log(str.indexOf('h',3)); //false
4.charAt() 和 charCodeAt() charAt返回字符串指定位置的字符 charCodeAt返回指定位置的编码
console.log(str.charAt(8)); //r
console.log(str.charCodeAt(3)); //108
5.match() 匹配符合条件的字符 并返回详细信息
console.log(str.match('ll')); //[ 'll', index: 2, input: 'hello,word ', groups: undefined ]
6.concat 字符串拼接 跟数组合并同样用法
var str = 'hello,word '
var str1 = 'nihao'
console.log(str.concat(str1)); //hello,word nihao
7.slice 开始参数从索引0开始 结束参数从索引1开始,并返回截取的字符串**
console.log(str.slice(2,5)); // llo
8.toLowerCase()转换小写 toUpperCase()转换大写
// console.log(str.toLowerCase());
// console.log(str.toUpperCase());
9.trim()去掉字符串中的前后的空格
// console.log(str.trim());
10.replace 在字符串将一些字符替换
console.log(str.replace('ll','bb'));
11. search() 查找指定字符串 找到返回索引 没有则返回-1
console.log(str.search('l'));
12.substr() 截取字符串长度 第一个参数是起始位置 索引0开始 第二个参数是从起始位置开始截取的长度
console.log(str.substr(2,3)); // llo
13.substring() 截取字符串长度 第一个参数是起始位置 索引0开始 第二个参数是从索引1开始的
console.log(str.substring(1,2));
14.includes ES6新提出的几个判断字符串是否包含字符串里面 跟indexOf用法一样 返回true or false 也跟数组用法一样
15.repeat() 将原字符串重复n次 并返回一个新的字符串
// var ttt =str.repeat(4)
// console.log(ttt); //hello,word hello,word hello,word hello,word
16.Math.floor 取整数部分 还有种用法是 ~表示取反 ~~表示取反再取反
function _int(value) {
// 补全代码
return ~value
}
console.log(_int(2.01)); // -3
function _int(value) {
// 补全代码
return ~~value
}
console.log(_int(2.01)); // 2
function _int(value) {
// 补全代码
return Math.floor(value)
}
console.log(_int(2.01)); // 2