将JSON项目推入现有数组angularjs

时间:2017-01-05 16:18:01

标签: javascript angularjs json

我有一个JSON数组,我从localstorage加载,我想添加更多项目并放回本地存储。但是,我有点迷失,并且错误说concat不存在。

 $scope.searchObj = {
      term: searchTerm
    };

    $scope.curObj = $scope.curObj.concat($scope.searchObj);

    localStorage.setObject('searchObj', $scope.curObj);

$ scope.curObj目前看起来像:

Object {term: "fs"}

我想将searchTerm(在searchObj中)推入curObj所以它看起来像

{"term":"fs","term":"searchterm"}

2 个答案:

答案 0 :(得分:1)

$scope.searchObj不是数组,而是JSON对象。

您实际上想要合并两个对象。你可以在普通JS中使用:

for (var attrname in $scope.curObj) { 
       $scope.searchObj[attrname] = $scope.curObj[attrname]; 
     }

或使用angular extend

$scope.searchObj = angular.extend($scope.searchObj, $scope.curObj);

答案 1 :(得分:0)

  1. 使用$localStorage将对象存储到localstorage并使用服务var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; var countedNames = names.reduce(function(allNames, name) { if (name in allNames) { allNames[name]++; } else { allNames[name] = 1; } return allNames; }, {}); - Reference

  2. 使用angular.extend(oldobject,newobject)进行合并