访问数据中的值

时间:2013-09-29 17:42:49

标签: javascript

在JavaScript中提出一些问题。

我有一个数据结构。有点像这样:

var Data = 
{
    head:    ["ID", "Name", "Age"],
    rows: [
             ["0", "Bob", "23"],
             ["1", "Sam", "24"],
             ["2", "Tom", "25"]
             // and so on
          ]
}

我有一个处理这些数据的函数。此函数必须处理for..in语句中的rows-field。

$scope.someDate = $filter('filter')($scope.data.rows, function (item) {
  for(var val in item) {
     // some logic...
   }
   // some logic...
});

问题如下。在FOR-loop而不是给我3个属性(根据数据格式)它给了我4.第四个属性是散列键。因为这个我有问题。 有人知道如何修复,修改或绕过它吗?

1 个答案:

答案 0 :(得分:1)

在您的情况下,rows是一个数组数组。行的每个元素(即数组)都将传递给item。现在,item是一个数组。根据这个例子,

var Data = 
{
    head:    ["ID", "Name", "Age"],
    rows: [
             ["0", "Bob", "23"],
             ["1", "Sam", "24"],
             ["2", "Tom", "25"]
             // and so on
          ]
};

Data.rows.forEach(function(item) {
    console.log(item);
})

将打印

[ '0', 'Bob', '23' ]
[ '1', 'Sam', '24' ]
[ '2', 'Tom', '25' ]

现在,如果我们必须处理这个item数组的每个元素,我们必须遍历它。

Data.rows.forEach(function(item) {
    for (var i = 0, len = item.length; i < len; i += 1) {
        console.log(item[i]);
    }
})

现在,这将打印

0
Bob
23
1
Sam
24
2
Tom
25

注意:不要使用for..in来迭代数组。请阅读此答案以获取详细解释https://stackoverflow.com/a/500531/1903116