处理数组相关方法(持续更新)

  • Post author:
  • Post category:其他

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;
      },


版权声明:本文为kjhytfh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。