javascript - 如何检查变量是否与列表/数组中的其他变量具有相同的值?

标签 javascript html arrays

我有一个变量列表(例如:userList = [user1, user2, user3...]),每个变量都存储在本地存储中,并且值为 1 或 0。
现在我试图做到这一点,如果数组中的一个值(例如用户 2)的值为 1,则该数组中的每个其他变量的值都设置为 0。

这是我的数组(它很长,所以我只输入了 3 个值):

var usernameAlphaLog = [
  localStorage.getItem("user1-log"), 
  localStorage.getItem("user2-log"), 
  localStorage.getItem("user3-log")...
]

最佳答案

简单地说,你的做法是错误的。

使用带有键的对象,并将其存储为 JSON

var users = {user1 : 1, user2 : 0, user3 : 0, user4 : 0 };

然后,当你想改变某些东西时,你就会这样做

for (var key in users) users[key] = 0;
users['user2'] = 1;

并且您已将 user2 设置为 1,并将所有其他设置为 0
要存储它,您需要这样做

localStorage.setItem('users', JSON.stringify(users));

并获取它

var users = JSON.parse(localStorage.getItem('users'));

这比将每个键/值对存储在本地存储中要简单得多,并且可以通过更新、更改等功能轻松扩展。

关于javascript - 如何检查变量是否与列表/数组中的其他变量具有相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46491912/

相关文章:

javascript - HTML 中鼠标跟随的动画图像蒙版

javascript - 如何返回 onclick 元素的内容?

javascript - 显示/隐藏具有相同类名的 Div - Javascript

JavaScript - 在 Opera 中验证十六进制?

c# - 将 C# 字符串变量插入到 ASP.NET 代码后面的 Javascript 警报中

html - chrome 和 ie9 上的图像堆叠渲染不同

javascript - <nav> 调整大小以适合子内容

javascript - 将文件中的另一个对象添加到 Javascript 对象数组

java - 根据其他数组的结果设置数组的值

javascript - 如何在js中将select中的文本与数组匹配?