javascript - 如何让 OR 运算符在此 JavaScript 数组中工作

标签 javascript arrays

几个月来,我一直在断断续续地解决这个问题。是否可以将“或”运算符应用于下面的数组结构?

基础知识:如果下拉列表中的值与数组中的值匹配,则相应的 ID 将发送到函数并执行其他操作,但我无法添加/包含 或运算符

例如我希望能够在代码中说:

{id : '418', value: 'Brochure' || 'Broc'},
{id : '546', value: 'Classified Ad' || 'CA' || 'Class Ad'},

但上面的方法永远行不通,所以我不知道是做不到还是语法错误。

任何见解将不胜感激。


找到值后运行的函数

var projectTypes = [{
    "id": "418",
    "value": ["Brochure", "Broc"]
  }, {
    "id": "546",
    "value": ["Classified Ad", "CA", "Class Ad"]
  }, {
    "id": "254",
    "value": ["Flyer", "Flyers"]
  }, {
    "id": "855",
    "value": "Post Card"
  }];

function projectTypeChange() {
    var project_type = document.getElementById(projectType_Field_Id).value;
    SwitchBox(project_type);
}

function SwitchBox(selectedType) {
    for (var i = 0; i < projectTypes.length; i++) {
        if (projectTypes[i].value.indexOf(projectTypes) >= 0)
        //if (projectTypes[i].value == selectedType)
        {
            document.getElementById("section-" + projectTypes[i].id).style.display = '';
        } else {
            document.getElementById("section-" + projectTypes[i].id).style.display = 'none';
        }
    }
}

最佳答案

而不是尝试使用 ||运算符(在这种情况下是不正确的),使值成为它自己的数组:

{ id: '418', value: ['Brochure','Broc'] },
{ id: '546', value: ['Classified Ad','CA','Class Ad'] }

然后不检查值是否相等,而是检查 indexOf 以查看值是否在数组中:

if(value.indexOf(someVal) >= 0)
{
    // someVal was found in the value array...do the work!
}

关于javascript - 如何让 OR 运算符在此 JavaScript 数组中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11651343/

相关文章:

javascript - 不接收负数

javascript - 仅当 x 秒内没有鼠标点击时触发函数

javascript - AngularJs 简单的自定义服务不起作用

javascript - 我应该如何将 HTML/CSS 内容发送到服务器?

java - 组合二维数组

java - 如何在不使用存储阵列的情况下将 2D 阵列旋转 90 度?

javascript - 循环遍历 Javascript 函数

javascript - Angujar 1.3 无法使用 $watch 更改数据

java - 如何在Java中对随机字母数组求和?

java - 将 String 转换为 int 数组