javascript - 如何在javascript中实现这个逻辑?

标签 javascript jquery

我在我的项目中使用 javascript,而且我是新手。我有一个场景,我想为我的组件实现 Status 属性。此 Status 属性显示可用状态列表中我的组件的当前状态。例如:

我是这样实现的:

  var availableStatus = [
                          { Name: 'visible' }, 
                          { Name: 'hidden' }, 
                          { Name: 'deny' }, 
                          { Name: 'allow' }, 
                          { Name: 'destroy' }
                         ];

  var Status = availableStatus[0];

  if(Status === availableStatus[0])
    //do this 
  else if(Status === availableStatus[1])
    //do this 
  ...

但我觉得应该有另一种更好的方法。这种逻辑取决于数组项的顺序,如果数组顺序发生变化,将来可能会产生问题。我有另一个逻辑通过使用命名数组来实现这一点。但我不知道怎么办。

请谁能给我一个更好的建议来实现这种场景?

最佳答案

按名称索引它们(如果足够唯一):

var availableStatus = {
                      visible : { Name: 'visible' }, 
                      hidden : { Name: 'hidden' }, 
                      deny : { Name: 'deny' }, 
                      allow : { Name: 'allow' }, 
                      destroy : { Name: 'destroy' }
                     };

var Status = availableStatus.visible;

if(Status === availableStatus.visible)
    //do this 
else if(Status === availableStatus.hidden)
    //do this 

这是假设稍后状态对象中有更多信息,或者处理该数据的函数。如果你只想存储一个字符串,你可以这样做:

var availableStatus = {
                      visible : {},
                      hidden : {}, 
                      deny : {}, 
                      allow : {}, 
                      destroy : {}
                     };

并且具有相同的功能。

关于javascript - 如何在javascript中实现这个逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18226846/

相关文章:

javascript - 修复 jQuery 求和表无法正常工作的问题

javascript - 原型(prototype)未按预期工作

javascript - JS 或 jQuery - 获取下拉列表的键和值

javascript - 如何设置下载 header 以避免客户端 Windows Defender 阻止 javascript 文件

javascript - 将 aspx 加载到 div : wrong path

javascript - Chrome控制台到文件

php - 锁定MySQL中的最大值

javascript - 是否可以在 Javascript 中从剪贴板 onclick 粘贴?

javascript - 从 "AddEventListener"启动函数?

javascript - 如何让 jQuery 与 Underscore 一起使用?