开发者问题收集

javascript | 在对象中搜索

2014-10-03
641

我有一个对象:

var obj = {7:[57,58], 8:[37]}

我正在寻找如果对象中存在键/值则返回 true 或 false 的函数。

例如:

function check(key, value) { //  7,58

   return true;
}

我该怎么做?谢谢!

3个回答

您可以这样做:

var obj = {7:[57,58], 8:[37]}

function check(key, val) {
    return !!obj[key]&&!!~obj[key].indexOf(val);
}

check(7, 58); // true
check(7, 57); // true
check(8, 9); // false
Marco Bonelli
2014-10-03
function check(obj, key, value) {
    return (obj[key]) ? (obj[key].indexOf(value) != -1) : false;
}
John V
2014-10-03

使用 some :

function check (key, value) {

  //  Grab the object keys and iterate over them using `some`
  return Object.keys(obj).some(function (el) {

      // make sure you convert `el` to an integer before checking
      // it against the key
      return parseInt(el, 10) === key && obj[el].indexOf(value) > -1;
   });
}

DEMO

Andy
2014-10-03