2012-11-27 27 views
0

我在一个asp.net页面获取车辆列表MooTools是增加不必要的函数调用JSON结果

function GetVehicleCounts(totalVehicles, vehiclesInDepot, vehiclesInFilter,   vehiclesInKnownLocations, vehiclesInUnknownLocations, vehiclesNotInDepot) 
{ 
vehiclesInDepot.value = 0; 
vehiclesInFilter.value = 0; 
vehiclesInKnownLocations.value = 0; 
vehiclesInUnknownLocations.value = 0; 
vehiclesNotInDepot.value = 0; 
var listofVehicles; 
var count = 0; 

for (var k in vehicles_dm) { 
    vehiclesInDepot.value++; 

    if (vehicles_dm[k].IsInFilter) { 
     vehiclesInFilter.value++; 
    } 

    if (vehicles_dm[k].CurrentFeatureType == 11) { 
     vehiclesInUnknownLocations.value++;    
    } 
    else { 
     vehiclesInKnownLocations.value++; 
    } 
} 

if (vehicles_dm != null) { 
    vehiclesNotInDepot.value = totalVehicles - vehicles_dm.length; 
} 
} 

然而功能,当我添加MooTools的页面我遇到的问题Mootools将所有函数调用添加到结果中。这最终会重复执行任何类似的功能。任何想法纠正?

我没有关于使用Mootools的选择,现有的页面是在jQuery中完成的。

+0

“将所有的函数调用的结果” - 这是没有意义的,请详细说明是,正在添加 –

+0

专门_which_函数调用? – BryanH

+0

为什么在第一个函数def的末尾有一个撇号?它使第二个函数成为一个字符串。这是一个错字,只是在SO或在您的js文件? –

回答

0

我找到了答案!

'for..in不适用于数组迭代。它遍历一个非内置对象的所有属性。由于MooTools为Array原型添加了更多功能,因此它们现在也是数组属性。看到这个https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Statements/For...in

只是使用基本for循环进行数组迭代。'

Javascript array iteration using for..in with MooTools included

+1

相当,就像我在评论中所说的 - 你正在做'var in'。 –

相关问题