Javascript push.apply()不增加数组大小
我有这段代码Javascript push.apply()不增加数组大小,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我有这段代码 if ($scope.newLeverAdded) { console.log("executed this"); console.log($scope.tradeDataObj, "data is here"); console.log($scope.group_levers, "this 2 here"); $scope.group_levers.levers.push.apply($scope.group_levers.levers, $sco
if ($scope.newLeverAdded) {
console.log("executed this");
console.log($scope.tradeDataObj, "data is here");
console.log($scope.group_levers, "this 2 here");
$scope.group_levers.levers.push.apply($scope.group_levers.levers, $scope.tradeDataObj.levers[0]);
console.log($scope.group_levers, "mid prrinting");
console.log("after this");
}
console.log($scope.group_levers, "final prrinting");
我只是想通过添加新元素来增加数组大小。。现在数组包含2个元素。但最终控制台仍然返回数组中的单个元素
为什么会这样?在无法运行代码的情况下,您可以尝试以下几点:
$scope.group\u levers.levers.push('new element')
而不是apply来测试呢$scope.group_levers.levers.push.apply($scope.group_levers.levers, $scope.tradeDataObj.levers);
的第二个参数应该是数组
我假设您正在尝试推送多个项,如和您的完整控制台输出是什么?
apply
的第二个参数需要是一个数组。$scope.tradeDataObj.levers[0]
是数组吗?为什么要使用apply
?有什么特别的原因吗?没有,没有特别的原因。我只需要保留以前的数组数据并推送新数据,这样我就可以将完整的JSON发送回服务器。如果有人能解释一下,当我尝试.push($scope.tradeDataObj.levers[0])时,什么时候需要.apply()和pushwierdly..,我将不胜感激。IDE抛出语法错误sayong expected identifier我假设$scope.group\u levers.levers
是一个数组。是的,那肯定是一个数组…这就是为什么看到IDE的这种响应很奇怪。Visual Studio,如果这很重要的话Mohayemin..thanx用于指向正确的方向。我猜,如果原始源是数组,则只应将对象添加到其中,而不是再次添加到数组中。因此,我们在做杠杆[0]。这是否特别适用