01 过滤数组,根据数组元素,是否包含该keyName

根据子元素key,过滤数组

过滤数组元素: 对象,且带有某些keyName,返回新数组;

  /* 根据子元素key,过滤数组
   * array {Array} 数组
   * args {Array} ES6参数数组
   * return {Array} 返回新数组
   * */
    function filterArrayByObjKey(array, ...args) {
      if(!Array.isArray(array)) return array;
      let final = [];
      
      array.forEach((item) => {
        if(typeof item !== 'object') {
          return item;
        }
        // 判断是否是对象的key
        const tf = args.some((argsItem) => item.hasOwnProperty(argsItem));
        if(!tf) {
          final.push(item);
        }
      })
      return final;
    }

  filterArrayByObjKey(
    [{ a: 1, b: 2 }, { a: 1, b: 2 }, { d: "1" }, { v: 3 }, { c: 2 }],
    "a",
    "b",
    "c"
  ); 
  // [ { d: '1' }, { v: 3 } ]

posted @ 2021-06-24 16:39  胖虎西西  阅读(98)  评论(0编辑  收藏  举报