You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于页面ID为多产品定义jQuery数组的技术需求与实现问询

页面ID与产品关联的数组实现方案

需求

  • 建立**页面ID(平台自动生成)**和对应产品的关联映射
  • 实现两个核心判断:
    1. 校验当前页面ID是否存在于任意产品的ID集合中
    2. 校验当前页面ID是否属于特定产品(比如product1)的ID集合,匹配则展示该产品专属内容

修正后的实现代码

// 用对象存储产品与页面ID的映射,比数组更适配键值对场景
const solutions = {
  product1: [46, 47, 48, 49],
  product2: [40, 41, 42, 43]
};
const currentID = pageData.content.category.id; // 获取当前页面的ID

// 扁平化所有产品的页面ID,用于快速判断当前ID是否在任意产品范围内
const allPageIDs = Object.values(solutions).flat();

// 第一个判断:检查当前ID是否属于任意产品的页面集合
if (allPageIDs.includes(currentID)) {
  // 这里写通用逻辑,比如显示产品相关的基础模块
  console.log("当前页面属于某产品专属页面");
}

// 第二个判断:精准检查当前ID是否属于product1的页面集合
if (solutions.product1.includes(currentID)) {
  // 这里写product1的专属逻辑,比如展示定制化内容
  console.log("当前页面属于product1,展示对应内容");
}

// 如果需要遍历所有产品,自动匹配当前ID所属产品并执行逻辑
Object.entries(solutions).forEach(([productName, pageIDs]) => {
  if (pageIDs.includes(currentID)) {
    console.log(`当前页面属于${productName},展示对应内容`);
  }
});

原代码问题说明

原给出的代码存在两处关键问题:

  1. 用数组[]存储字符串键的映射不符合规范,应该用普通对象{}来管理键值对
  2. 第一个if判断((pageData.content.category.id == val) > -1)逻辑完全错误:val是数组类型,和数字ID比较结果为false,转为数字后是0,0 > -1永远成立,根本起不到校验作用
  3. 推荐用原生JS的includes()替代jQuery的$.inArray(),无需依赖第三方库,更贴合现代JS开发规范

内容的提问来源于stack exchange,提问作者pathetic.aesthetic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:55:16