js排除对象字段

徐徐
前端
发表于 2026/04/20 16:00
🌺 摘要
基于 `Object.entries + Object.fromEntries` 实现 `excludeObjectFields`,并补充参数校验与浅拷贝返回逻辑。

/**
 * 批量排除对象的指定字段(基于 Object.fromEntries 实现)
 * @param {Object} obj - 源对象(非对象类型会返回原值并警告)
 * @param {string[]} excludeKeys - 需要排除的字段名数组(非数组会返回原对象浅拷贝并警告)
 * @returns {Object} 排除指定字段后的新对象(浅拷贝)
 */
export function excludeObjectFields(obj:Record<string,any>, excludeKeys:string[] = []) {
  // 校验源对象:如果不是有效对象(null/非对象类型),返回原值并提示
  if (typeof obj !== 'object' || obj === null) {
    console.warn('excludeObjectFields: 第一个参数必须是有效对象');
    return obj;
  }

  // 校验排除字段数组:如果不是数组,返回原对象浅拷贝并提示
  if (!Array.isArray(excludeKeys)) {
    console.warn('excludeObjectFields: 第二个参数必须是字符串数组');
    return { ...obj };
  }

  // 核心逻辑:转entries → 过滤 → 转回对象
  return Object.fromEntries(
    // 过滤掉excludeKeys中包含的key
    Object.entries(obj).filter(([key]) => !excludeKeys.includes(key))
  );
}
文章发表于 2026/04/20 16:00
作者: 徐徐
文章标题: js排除对象字段
版权声明: 内容遵守许可协议,转载请注明出处。
扫码阅读原文

评论

加载中...