如何给localStorage的三个不同键分配同一个随机生成的ID
问题原因
你当前的写法每次给存储键拼接后缀时都调用了一次ID(),这个函数每次执行都会生成全新的随机字符串,所以三个存储键自然会得到三个不同的ID后缀。
解决方法
只调用一次ID(),将生成的ID值提前存到一个变量中,三个存储键拼接后缀时都复用这个变量即可。
修改后代码
var ID = function () { return "_" + Math.random().toString(36).substr(2, 9); }; let user_name = document.getElementById("username"); let user_paswrd = document.getElementById("password"); let user_email = document.getElementById("email"); let store_data = () => { // 仅生成一次ID,后续全量复用 const sharedId = ID(); localStorage.setItem("username_nr" + sharedId, user_name.value); localStorage.setItem("password" + sharedId, user_paswrd.value); localStorage.setItem("email" + sharedId, user_email.value); };
补充说明
后续需要读取同一名用户的三条关联数据时,只要留存对应的sharedId值,就能直接匹配到三个对应的存储键,不需要额外做数据关联。
内容的提问来源于stack exchange,提问作者InsaneSuperSand
相关产品推荐
相关产品推荐

