$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 :(得分:0)
Splice在性能方面是最糟糕的选择。 但在你的情况下,你需要这样做:
$scope.myJson.splice(i,1);
请参阅此处的效果比较:https://jsperf.com/splice-vs-filter
我至少会做一个过滤器:
$scope.myJson = $scope.myJson.filter(function(obj) {
return (obj.id !== '2');
}) ;
答案 1 :(得分: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) )