无法使用 localStorage 手动生成 id
Can not get manually generate id with localStorage
我有一个 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.getItem(KEYS.employeeId === null)
这相当于
localStorage.getItem(false)
。
localStorage.getItem(KEYS.employeeId === null)
的 return 值为 null
,parseInt(null)
为 NaN
。
因此,为了让您的代码正常工作,只需将 if 语句中的条件更改为 localStorage.getItem(KEYS.employeeId) === null
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;
}
首先,您可能会更改第一个 if 语句,就好像您保留它一样,这就像尝试从 localStorage
中检索布尔值一样。因为 KEYS.employeeId === null
将 return 一个布尔值。
然后,如果您方便的话,您可以将 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;
}
我有一个 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.getItem(KEYS.employeeId === null)
这相当于
localStorage.getItem(false)
。
localStorage.getItem(KEYS.employeeId === null)
的 return 值为 null
,parseInt(null)
为 NaN
。
因此,为了让您的代码正常工作,只需将 if 语句中的条件更改为 localStorage.getItem(KEYS.employeeId) === null
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;
}
首先,您可能会更改第一个 if 语句,就好像您保留它一样,这就像尝试从 localStorage
中检索布尔值一样。因为 KEYS.employeeId === null
将 return 一个布尔值。
然后,如果您方便的话,您可以将 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;
}