遍历数组直到找到值然后中断
Looping through array until value is found and then breaking
我有一个 select 字段,在更改时我得到了值。当我遍历 select 值时,我想检测它是否与我拥有的值匹配(如果匹配)我还想检查对象是否包含我写入的标志===true。我一直得到的是数组中项目的数量以及最后一个标志的最终值是什么。
array[
object{
value: fromSelectChange //if matches && flag is set to true stop looping
flag: true
}
]
假设数组就是你的数组
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))
我的第一反应是把它全部扔进一个 for in 循环中。我通常发现它是一种更简单的方法来查看数组上的迭代是否有效。
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
我有一个 select 字段,在更改时我得到了值。当我遍历 select 值时,我想检测它是否与我拥有的值匹配(如果匹配)我还想检查对象是否包含我写入的标志===true。我一直得到的是数组中项目的数量以及最后一个标志的最终值是什么。
array[
object{
value: fromSelectChange //if matches && flag is set to true stop looping
flag: true
}
]
假设数组就是你的数组
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))
我的第一反应是把它全部扔进一个 for in 循环中。我通常发现它是一种更简单的方法来查看数组上的迭代是否有效。
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