如何迭代数组并检查jquery中是否存在匹配?

时间:2018-01-31 01:05:41

标签: javascript jquery for-loop

我有一个变量,我需要检查它是否与数组中的一个键匹配,并在jquery中获取其值。

JS

var t = 30;
var obj = { 10: 1, 20 : 2, 30: 3, 40: 4, 50 : 5, 60: 6 };

$.each(obj, function(key, value){
   if ( t == key ) {
      alert(value);
   }
});

我很感激!

2 个答案:

答案 0 :(得分:1)

看起来您的代码实际上在上面工作。您是否可能尝试使用vanilla javascript而不是您拥有的jQuery解决方案?如果您不使用jQuery,可以使用以下选项:

<script>
  var t = 30;
  var obj = {
    10: 1,
    20: 2,
    30: 3,
    40: 4,
    50: 5,
    60: 6
  };

  for (var instance in obj) {
    if (instance == t){
         alert(obj[instance])
    }
  }
</script>

您可以使用以下方法进一步清理循环:

for (var instance in obj) {
    instance == t ? alert(obj[instance]) : '' 
  }

答案 1 :(得分:1)

要检查,如果要查找值为type = 1的值,如果搜索密钥然后使用type = 0,则值/键使用此功能。

 var obj = {
    10: 1,
    20: 2,
    30: 3,
    40: 4,
    50: 5,
    60: 6
};

var find = function(input, target,type){
    var found;
    for (var prop in input) {
    if(type === 1)
    {
        if(input[prop] == target){
        found = prop;
        }
    }
    else
    {
        if(prop == target){
        found = prop;
        }
    }

    };

    return found;
};
var t =  5; // Value to found in array
var found = find(obj, t ,1); // For Value Check only key return

if(found){
    alert(found);
}

t =  30; // key to found in array

var found = find(obj, t  ,0); // For key Check only key return

if(found){
    alert(found);
}
  

注意:如果您需要,此函数仅返回两种类型的键   然后使用obj[found]