如何在以下javascript括号内编写方程式?

时间:2014-03-16 01:04:31

标签: javascript angularjs

在我的angular.js控制器中,我想通过传入它来选择与$ routeParams.propertyID匹配的数组编号。以下工作原理:

$scope.selectedProperty = $scope.all_properties[$routeParams.propertyID];

BUT 有数组,1 = 0,所以它选择了我想要的前一个数组。如何通过+1来选择正确的数组?我试过以下没有运气:

$scope.selectedProperty = $scope.all_properties[$routeParams.propertyID + 1];
$scope.selectedProperty = $scope.all_properties[($routeParams.propertyID + 1)];
$scope.selectedProperty = $scope.all_properties[($routeParams.propertyID) + 1];

干杯

3 个答案:

答案 0 :(得分:1)

你的属性可能是一个字符串,尝试在进行数学之前向int添加一个解析

如果你正在做

var calc = "1" + 1 // calc = "11"

如果您不确定,请添加console.log($ routeParams.propertyID)并检查您是否为firebug控制台

$scope.selectedProperty = $scope.all_properties[parseInt($routeParams.propertyID,10) + 1];

如果你正在读取pos而不是pos零,你应该减去

$scope.selectedProperty = $scope.all_properties[parseInt($routeParams.propertyID,10) - 1];

答案 1 :(得分:0)

如果propertyID是一个字符串,您可能希望将其转换为添加的数字

$scope.selectedProperty = $scope.all_properties[+$routeParams.propertyID + 1];

或者,如果布兰登的评论是正确的

$scope.selectedProperty = $scope.all_properties[+$routeParams.propertyID - 1];

请注意,在两种情况下,将字符串转换为数字之前的加号(+

答案 2 :(得分:0)

您的上下文中有两个问题:

第一期:加或减

为什么添加?你不应该减去一个吗?

如果数组的对应于ID&#39> 一个,那么你必须做"减去一个":

+$routeParams.propertyID - 1

第二个问题:字符串或数字

字符串或数字?

可能您的ID是字符串,而数组索引是数字。在这种情况下,这应该工作:

$scope.selectedProperty = $scope.all_properties[+$routeParams.propertyID - 1];

但是,如果你说你的第一个代码有效,也许你没有"数组",但是哈希(或者#34;字典&#34) ;)

在这种情况下,在添加或减去一个之后,必须将结果转换回字符串:

$scope.selectedProperty = $scope.all_properties[(+$routeParams.propertyID - 1) + ""];