2016-04-09 14 views
-2
$scope.myJson = [{ 
    "id": "1", 
    "name": "banana", 
    "price": 12, 
    "qty": 3, 
    }, { 
    "id": "2", 
    "name": "watermelon", 
    "price": 12.9, 
    "qty": 4, 
    }]; 

for(i = 0; i < $scope.myJson.length; i++) { 
     if($scope.myJson[i]._id == '2'){ 

     //what to do here? 
     //then save back to localstorage 
     } 
    } 

私はlocalstorageを使用していますので、配列を見つけてスプライスする必要があります。私はどのように進むべきかわかりません。プロパティ値のスプライス配列ベース

答えて

0

スプライスはパフォーマンス面で最悪のオプションです。あなたがする必要があるでしょう、あなたのケースではまだ :ここ

$scope.myJson.splice(i,1);

参照性能比較:https://jsperf.com/splice-vs-filter

私は、少なくともフィルタを行うだろう:

$scope.myJson = $scope.myJson.filter(function(obj) { return (obj.id !== '2'); }) ;

0

ちょうど反復処理配列を検索し、目的のプロパティ値を検索して配列をスプライスします。

function spliced(array, value) { 
    var arr = array.slice(0); 


    array.forEach(function (obj) { 
     if (obj.hasOwnProperty('id')) { 
      if (obj['id'] == value) { 
       arr.splice(arr.indexOf(obj),1); 
      } 
     } 
    }); 
    return arr; 
} 

console.log(spliced(arr, 1)) 
関連する問題