如何在JavaScript中显示数组值?解决categories数组输出[object object]问题
问题根因
categories数组中存储的都是{ type: 分类值 }格式的对象,JS中直接将对象和字符串拼接时,会自动调用对象的toString()方法,输出结果自然就是[object Object]。
修复方案
- 如果仅需在页面提示中展示分类取值,可修改
notice的赋值逻辑,提取对象内的type属性再做拼接:
// 方案1:直接序列化整个数组,保留完整对象结构 document.getElementById('notice').innerText = "All categories included: " + JSON.stringify(categories); // 方案2:仅提取分类值拼接,展示效果更简洁 const categoryValues = categories.map(item => item.type).join(', '); document.getElementById('notice').innerText = "All categories included: [" + categoryValues + "]";
- 若后续调用的
filterjs.findRestaurantsByCategory方法要求入参为分类字符串数组,可直接修改categories的构造逻辑,不需要给值套一层对象:
// 循环内直接push分类值,不要包对象结构 categories.push(paramsFromUrl.get('category' + i))
额外注意
你当前的循环判定条件为i < count - 1,会跳过最后一个参数对应的分类值,如果你需要遍历所有参数对应的分类,建议修改为i < count避免漏取,也能解决部分场景下输出undefined的问题。
内容的提问来源于stack exchange,提问作者Stephen K
相关产品推荐
相关产品推荐

