在JavaScript中有一些问题要问。
我有一个数据结构。有些事情是这样的:
var Data =
{
head: ["ID", "Name", "Age"],
rows: [
["0", "Bob", "23"],
["1", "Sam", "24"],
["2", "Tom", "25"]
// and so on
]
}我有一个处理这些数据的函数。该函数必须处理for..in语句中的行字段。
$scope.someDate = $filter('filter')($scope.data.rows, function (item) {
for(var val in item) {
// some logic...
}
// some logic...
});问题是:在FOR-循环中,它不是给我3个属性(根据数据格式),而是给我4。第四个属性是散列键。因为这个我有问题。有没有人知道如何修复、修改或绕过这个问题?
发布于 2013-09-29 18:10:09
在您的例子中,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
https://stackoverflow.com/questions/19081193
复制相似问题