Javascript 在LocalFower中动态生成密钥的值

Javascript 在LocalFower中动态生成密钥的值,javascript,localforage,Javascript,Localforage,我正在使用localfough离线存储数据。在使用setItem方法向store添加键值时,我想生成像activity_1、activity_2、activity_3等键值,这是在提交表单时生成的。因此,对于我提交的每个表单,它应该以不同的方式生成键值 以下是代码: var getActivity = document.getElementById('getActivity'), fetchVal = document.getElementById('fetchVal'), lo

我正在使用localfough离线存储数据。在使用setItem方法向store添加键值时,我想生成像activity_1、activity_2、activity_3等键值,这是在提交表单时生成的。因此,对于我提交的每个表单,它应该以不同的方式生成键值

以下是代码:

var getActivity = document.getElementById('getActivity'),
    fetchVal = document.getElementById('fetchVal'),
    log_form = document.getElementById('log_form');

function activityArr() {
  var i = 1;
  if(i > 0){
    var keyVal = 'activity_' + i;
  }
  i++;
  return keyVal;
}

log_form.addEventListener('submit', function(e){
  e.preventDefault();
  localforage.setItem(activityArr(), getActivity.value)
    .then(function (val) {
      console.log(val);
    }).catch(function(err){
      console.log(err);
    });
    localforage.keys().then(function(keys) {
    console.log(keys);
}).catch(function(err) {
    console.log(err);
});
});
这是供参考的链接

但在我的例子中,它为我提交的每个表单生成键“activity_1”。因此,它将覆盖存储在“activity_1”中的上一个值

只需尝试提交表单2-3次,然后打开开发人员控制台查看结果


如何在提交表单时以不同方式生成密钥

不要将i变量设为局部变量。每次调用该函数时,i变量都重置为1

var i = 1;
function activityArr() {
  if(i > 0){
    var keyVal = 'activity_' + i;
  }
  i++;
  return keyVal;
}

啊…我错了。谢谢你的建议。