【问题标题】:delete 1 item from local storage array从本地存储阵列中删除 1 个项目
【发布时间】:2018-07-30 10:16:43
【问题描述】:

我有一个本地存储项,如下所示

(2) [{…}, {…}]
0
:
cityName
:
"durban"
__proto__
:
Object
1
:
cityName
:
"cape town"
__proto__
:
Object

我只想删除 1 个项目,这取决于 cityName 是否与本地存储项目匹配,即如果用户单击“durban”然后删除 durban。

我已经可以通过点击获取名称

  deleteCity(event){
    var target = event.currentTarget.id;
    console.log(target);
    var getLSCityName = localStorage.getItem('savedLocations');
    var getLSCityNameArr = JSON.parse(getLSCityName);

      for(var i = 0; i < getLSCityNameArr.length; i++){
        if (getLSCityNameArr[i].cityName == target){
          getLSCityNameArr.splice[i].cityName;
          localStorage.setItem('savedLocations', JSON.stringify(getLSCityNameArr));
        }
      } 
    }

【问题讨论】:

  • 在“在此处执行操作”之后,您需要 a) JSON.stringify 它,然后 b) 将其写回 localStorage - 如果 savedLocations表示一个数组,然后使用数组过滤方法去除想要的项
  • 什么是“本地存储”?它是一个数组吗?对象?
  • 它是一个数组。我已经更新了我的尝试

标签: javascript arrays string ionic-framework local-storage


【解决方案1】:
please try like this

function deleteItem(index){
            var getLSCityName = localStorage.getItem('savedLocations');
            getLSCityName.splice(index,1); // delete item at index
        }

【讨论】:

  • 好的,这工作deleteCity(event){ var target = event.currentTarget.id; var getLSCityName = localStorage.getItem('savedLocations'); var getLSCityNameArr = JSON.parse(getLSCityName); for(var i = 0; i &lt; getLSCityNameArr.length; i++){ if (getLSCityNameArr[i].cityName == target){ getLSCityNameArr.splice(i, 1); localStorage.setItem('savedLocations', JSON.stringify(getLSCityNameArr)); } } }
猜你喜欢
  • 1970-01-01
  • 2019-12-03
  • 2019-11-26
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
相关资源
最近更新 更多