使用document.write打印对象数组仅显示[object, object]的问题
解决方法
首先确保你的筛选逻辑正确——要筛选年份与2023差值为2的车辆,应该取差值的绝对值(覆盖2021和2025两种情况),否则只会匹配单一方向的年份:
// 示例汽车数组 const carsArray = [ { make: 'Toyota', model: 'Camry', year: 2021 }, { make: 'Honda', model: 'Civic', year: 2023 }, { make: 'Ford', model: 'F-150', year: 2025 }, { make: 'Chevrolet', model: 'Malibu', year: 2020 } ]; // 正确筛选逻辑:取差值绝对值等于2 const twoYearOldCars = carsArray.filter(car => Math.abs(car.year - 2023) === 2);
然后解决document.write()显示[object Object]的问题:
直接打印包含对象的数组时,JavaScript会调用数组的toString()方法,而数组内每个对象的默认toString()返回值就是[object Object],所以会出现你看到的结果。你可以用以下两种方式输出清晰内容:
方式1:转成格式化的JSON字符串
用JSON.stringify()把数组转成人类可读的结构化字符串,还可以添加缩进参数让格式更友好:
document.write(JSON.stringify(twoYearOldCars, null, 2));
方式2:遍历数组自定义输出
如果需要更灵活的展示格式,可以遍历数组,逐个输出对象的具体属性:
twoYearOldCars.forEach(car => { document.write(`品牌:${car.make},型号:${car.model},年份:${car.year}<br>`); });
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

