如何通过索引号访问数组对象中的项?

时间:2016-12-10 07:45:15

标签: javascript angularjs json

我希望访问$ scope.list中的对象'2016-11-12'并显示订单和余额。怎么能实现呢?

列表:

$scope.list = {
  ItemCode:'item1',
  '2016-11-12':[{Order:'1',Balanace:'2'}],
  '2016-11-15':[{Order:' ',Balanace:' '}]
}

我已经尝试了indexof,但似乎无效。

$scope.list[0].indexof(1) 

任何想法和建议都会很棒!

3 个答案:

答案 0 :(得分:0)

访问指定日期的订单价值:

$scope.list['2016-11-12'][0]['Order']

要访问给定日期的余额值(拼写错误的余额btw):

$scope.list['2016-11-12'][0]['Balance']

答案 1 :(得分:0)

使用括号表示法:

$scope.list['2016-11-12'];

参见示例:



var app = angular.module('TestApp', []);

app.controller("testCtrl", function ($scope) {
  $scope.list = {
  ItemCode:'item1',
  '2016-11-12':[{Order:'1',Balanace:'2'}],
  '2016-11-15':[{Order:' ',Balanace:' '}]
};
  
  $scope.test = $scope.list['2016-11-12'];
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="TestApp">
  <div ng-controller="testCtrl">
    {{test}}
  </div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

你所谓的$ scope.list实际上是一个对象而不是你想象的数组。 '2016-11-12'是该对象中具有数组值的字段,其中只有一个对象。构造对象的一种更灵活的方法是将对象放在item对象内的数组中,然后通过索引访问它们。

$scope.list = {
ItemCode:'item1',
ThingsArray:[
 {Date:'2016-11-12', Order:'1',Balanace:'2'},
 {Date:'2016-11-15', Order:' ',Balanace:' '}
 ]
}

然后您可以使用$scope.list.ThingsArray[0]访问它们。请注意,我已将日期移动到对象本身。