/**
 * 筛选工具函数
 * 纯函数，无 wx.* 依赖
 */

/**
 * 按条件对象筛选列表
 * condition 中每个 key-value 对都必须匹配，即 AND 逻辑
 * @param list 对象数组
 * @param condition 筛选条件，key-value 对
 * @returns 满足所有条件的子数组
 */
export function filterByCondition<T extends Record<string, any>>(
  list: T[],
  condition: Record<string, any>
): T[] {
  const keys = Object.keys(condition)
  if (keys.length === 0) return [...list]

  return list.filter((item) =>
    keys.every((key) => item[key] === condition[key])
  )
}
