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

Angular中遍历对象时entries方法不可用的解决办法

解决Angular中遍历{ [key: string]: any }类型对象的entries方法报错问题

你遇到的问题核心是普通JavaScript对象没有entries()实例方法,entries()是数组的专属方法,而你这里的items是键值对类型的普通对象,直接调用items.entries()自然会报错。下面是几种可行的解决办法:

方法1:使用Object.entries()遍历键值对

这是最直接的替代方案,Object.entries()是Object的静态方法,能把对象转换成包含键值对的数组,之后就可以用for...of遍历:

searchNode(items: { [key: string]: any }) {
  // 调用Object的静态方法entries,传入目标对象
  for (let [key, value] of Object.entries(items)) {
    console.log(key);   // 输出对象的键
    console.log(value); // 输出对应的值
  }
}

方法2:仅遍历键/值

如果只需要对象的键或者值,可以用对应静态方法:

  • 遍历键:Object.keys(items)
  • 遍历值:Object.values(items)

示例(遍历键):

searchNode(items: { [key: string]: any }) {
  for (let key of Object.keys(items)) {
    console.log(key);
    console.log(items[key]); // 通过键获取对应值
  }
}

方法3:使用for...in循环

传统的for...in也可以遍历对象,但要注意过滤原型链上的属性:

searchNode(items: { [key: string]: any }) {
  for (let key in items) {
    // 确保只遍历对象自身的属性
    if (items.hasOwnProperty(key)) {
      console.log(key);
      console.log(items[key]);
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:02:49