我有一个表单字段数据的 data
对象,其中 id
键的初始值为空字符串。我正在尝试为每个提交的表单数据生成 ID 并保存在浏览器的存储中。即,data.id = generateEmployeeId();
写在下面:
function generateEmployeeId() {
if (localStorage.getItem(KEYS.employeeId === null)) {
localStorage.setItem(KEYS.employeeId, '0');
}
// eslint-disable-next-line radix
let id = parseInt(localStorage.getItem(KEYS.employeeId));
localStorage.setItem(KEYS.employeeId, (id += 1).toString());
return id;
}
但不幸的是,当我执行这段代码时,我得到了 NaN
注意:这里,KEYS
是employeeId
键值employeeId
的对象
最佳答案
首先,您可能会更改第一个 if 语句,就好像您保留它一样,就像尝试从 localStorage
检索 bool 值一样。因为 KEYS.employeeId === null
将返回一个 bool 值。
然后,如果您方便的话,您可以将 id 保存为整数,而无需 parseInt()
和 toString()
。
function generateEmployeeId() {
if (localStorage.getItem(KEYS.employeeId) === null)
localStorage.setItem(KEYS.employeeId, 0);
let id = localStorage.getItem(KEYS.employeeId);
localStorage.setItem(KEYS.employeeId, ++id);
return id;
}
关于javascript - 无法使用 localStorage 手动生成 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66730959/