循环遍历数组,直到找到值然后断开

时间:2015-02-23 15:46:09

标签: javascript arrays dojo dijit.form

我有一个选择字段,在更改时我得到了值。当我循环选择值时,我想要检测它是否匹配我所拥有的值,如果它匹配我还想检查对象是否包含一个标志=== true我写的。我一直得到的是项目数量在数组中,无论最后一个标志是最终值。

array[
 object{
  value: fromSelectChange //if matches && flag is set to true stop looping
  flag: true
 }
]

2 个答案:

答案 0 :(得分:1)

假设数组是数组

var array = [
  {value: fromSelectChange, flag: true},
  . . . // others
];

只需使用

function match(arr, value){
  var totalOk = 0;
  arr.every(function(el){
    if(el.flag && value == el.value){
      totalOk++;
    }
  });
  return totalOk;
}

alert(match(array))

答案 1 :(得分:0)

我的第一反应是把它全部扔进for循环中。我通常会发现它是查看迭代在数组上的东西是否有效的简单方法之一。

var fromSelectChangeReturn;
for (index in array) {
    if (array[index].fromSelectChange == value && array[index].flag) {
        fromSelectChangeReturn = array[index].fromSelectChange;
        Break;
    }
}

在MDN页面中:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in