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

如何遍历evt对象并显示其中包含的所有数组?

遍历并显示evt对象中的所有数组

你当前的代码问题在于:evt是对象而非数组,对象没有length属性,所以evt.length会是undefined,循环根本不会执行。要遍历对象里的数组,得用对象的遍历方法,下面给你几种可行的实现方式:

方法1:使用for...in循环遍历对象属性

这种方式可以同时拿到属性名和对应的数组,适合需要知道数组名称的场景:

for (const key in evt) {
  // 只处理对象自身的属性(跳过继承的属性)
  if (evt.hasOwnProperty(key)) {
    const arr = evt[key];
    // 确保当前属性值是数组
    if (Array.isArray(arr)) {
      // 控制台打印数组(调试用)
      console.log(`数组 ${key}:`, arr);
      
      // 如果要在页面上显示,可创建DOM元素插入
      const arrayEl = document.createElement('p');
      arrayEl.textContent = `${key}: ${arr.join(', ')}`;
      document.body.appendChild(arrayEl);
    }
  }
}

方法2:用Object.values()直接遍历属性值

如果不需要知道数组对应的属性名,只想逐个处理数组,用这个更简洁:

// 获取evt对象的所有属性值,遍历每个值
Object.values(evt).forEach((arr, idx) => {
  if (Array.isArray(arr)) {
    console.log(`第${idx + 1}个数组:`, arr);
    
    // 页面显示示例
    const arrayEl = document.createElement('p');
    arrayEl.textContent = `第${idx + 1}个数组: ${arr.join(', ')}`;
    document.body.appendChild(arrayEl);
  }
});

补充说明

  • Array.isArray()用来判断当前属性值是否为数组,避免处理对象里可能存在的非数组属性
  • 显示逻辑可以根据你的需求调整:比如用join(', ')把数组转成字符串,或者循环数组元素逐个渲染更复杂的结构

内容的提问来源于stack exchange,提问作者Aditya Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:12:22