1.比较一个数组是否包含另一个数组a包含b(返回true包含,false不包含)(注:不能含有重复元素的数组)
const isContained = (a, b) => {
if (!(a instanceof Array) || !(b instanceof Array)) return false;
// 方法1
// let res = b.filter(v=>{
// return a.indexOf(v) != -1
// })
// return res.length == b.length;
// 方法二
return b.every((val) => a.includes(val));
}
中间含有两种方法,哪种好理解用哪种
2..比较一个数组是否完全匹配另一个数组(true相等,false不相等)(注:不能含有重复元素的数组)
const arrIsSame = (a, b)=> {
if (!(a instanceof Array) || !(b instanceof Array)) return false;
let res =[]
if(a.length == b.length){
res = b.filter(v=>{
return a.indexOf(v) != -1
})
}
return res.length == b.length;
},
const arrIsSame = (a, b) => {
if (a.length !== b.length) {
return false
}
return a.every(item => b.indexOf(item) > -1)
}
针对上面不能含有重复元素的数组进行了修改
完全相等调整如下:
arrIsSame (a1, a2){
if (!(a1 instanceof Array) || !(a2 instanceof Array)) return false;
// 不改变原数组
let a = JSON.parse(JSON.stringify(a1))
let b = JSON.parse(JSON.stringify(a2))
a.sort()
b.sort()
return a.join() == b.join()
},
前端实现返回数组模糊查询
fuzzyQuery(list, keyWord) {
var reg = new RegExp(keyWord);
var arr = [];
for (var i = 0; i < list.length; i++) {
if (reg.test(list[i].name)) {
arr.push(list[i]);
}
}
return arr;
},