目录
操作数组
过滤数组
//过滤空项
data=data.filter(d=>d)
//过滤含有某字符串的
arr = arr.filter(d => d.indexOf(str) == -1)
//过滤对象数组
//过滤掉id=str的项
arr.filter(v => {
return v.id != str
});
取两个数组的交集,并集,补集,差集
// 交集 两个数组都有
arr1.filter(function (val) { return arr2.indexOf(val) > -1 })
// 并集 两个数组只要一个拥有就可以
arr1.concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))
// 补集 两个数组各自没有的集合
arr1.filter(function (val) { return !(arr2.indexOf(val) > -1) })
.concat(arr2.filter(function (val) { return !(arr1.indexOf(val) > -1) }))
// 差集 数组arr1相对于arr2所没有的
arr1.filter(function (val) { return arr2.indexOf(val) === -1 })
替换某一项
array.splice(index,howmany,element)
//index 替换第几个
//howmany 替换几个
//element 用于替换的元素(可以是多个)
取某几位元素
array.slice(0,3)
//取1-4位
数组每项都转为字符串或数字
//转换为字符串
array.map(String)
//转换为数字
array.map(Number)
数组去重
//unique(list)
unique(arr) {
return Array.from(new Set(arr))
},
操作对象数组
对象数组项内合并
let arr= (arr1 || []).map((item, index) => {
return { ...item, ...arr2[index] }
})
深拷贝
let arr1=[{a:1,b:5},{a:3,b:2}]
const _ = require('lodash');
let arr2= _.cloneDeep(arr1)
通过属性值查找对应对象
//仅查找第一个,返回查找到的对象
list.find(item => item.value == e.cllx)
//遍历查找,返回查找到的对象组成的数组
list.filter(item => item.value == e.cllx)
通过属性值查对象的index
index=list.findIndex(item=>item.value==this.value)
取某属性集合
list.map(item => item.value)
对象数组去重
//[{a:1,id:1},{a:1,id:2},{a:2,id:1},{a:2,id:2}]
//uniqueArr(list,'id')
uniqueArr(arr, id) {
return arr.filter((item, index) => {
return arr.findIndex(i => i[id] == item[id]) === index;
})
}
//[{a:1,id:1},{a:1,id:2}]
操作字符串
slice
//截取最后几位
str.slice(-2)
//截掉前几位
str.slice(2)
转换大小写
//转换大写
str.toUpperCase()
//转换小写
str.toLowerCase()
转换数字
//转换整数
parseInt(str)
//转换浮点数
parseFloat(str)
截取前i个
str.substring(0,i)
判断数据是空数组或空对象
var arr
//判断是否空数组
arr.length===0
//判断是否空对象
Object.keys(arr).length===0
//不确定数据是对象或数组,判断不为[]或{}
arr.length||Object.keys(arr).length
对象取key数组或value数组
var arr={a:1,b:2}
Object.keys(arr) // ['a','b']
Object.values(arr) //[1, 2]
信息加密
btoa(encodeURI(str))//加密
decodeURI(atob(str))//解密
url编码解码
decodeURIComponent(str)//解码
encodeURIComponent(str)//编码
去除地址栏url的参数
var url = window.location.href; //获取当前页面的url
if (url.indexOf("?") != -1) { //判断是否存在参数
url = url.replace(/(\?|#)[^'"]*/, ''); //去除参数
window.history.pushState({}, 0, url);
}
字符串生成txt
res='hhhhh'
let blob = new Blob([res])
let url = window.URL.createObjectURL(blob)
let a = document.createElement('a')
a.href = url
a.download =`${ row.title }_${ new Date().getTime() }.txt`
a.click()
正则
是否含中文
new RegExp("[\u4E00-\u9FA5]+").test(res.data.license)