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

如何在AngularJS的ng-repeat中展示数组元素的JSON键名?

解决方法:只显示数组中每个JSON对象的键名

嘿,这事儿好办!你可以通过两种方式实现需求,我都给你列出来:

方法一:在模板中直接获取键名

因为你的每个数组元素都是只有唯一键名的对象,所以可以用Object.keys()方法拿到对象的键数组,再取第一个元素(也就是唯一的那个键)。直接修改模板里的表达式就行:

<div ng-app="myApp">
  <div ng-controller="myController">
    <div ng-repeat="item in names">{{ Object.keys(item)[0] }}</div>
  </div>
</div>

JS部分不用改,保持原来的数组结构即可:

var app = angular.module('myApp', []);
app.controller('myController', function ($scope) {
  $scope.names= [
    {"joe":1},
    {"pablo":2},
    {"greic":3}
  ]
});

方法二:在控制器中预处理数据

如果之后还需要多次用到这些键名,或者想让模板更简洁,可以提前在控制器里把数组转换成只包含键名的数组:

var app = angular.module('myApp', []);
app.controller('myController', function ($scope) {
  const originalNames = [
    {"joe":1},
    {"pablo":2},
    {"greic":3}
  ];
  // 预处理:提取每个对象的唯一键名
  $scope.names = originalNames.map(item => Object.keys(item)[0]);
});

这时候模板就可以保持最开始的写法,直接显示item:

<div ng-app="myApp">
  <div ng-controller="myController">
    <div ng-repeat="item in names">{{item}}</div>
  </div>
</div>

两种方法最终都能输出你想要的结果:

joe
pablo
greic

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:33:35