2014-10-03 3 views
2

У меня есть объект:javascript | поиск в объекте

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

Я ищу функцию, которая возвращает истину или ложь, если ключ/значение существует в объекте.

Например:

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

    return true; 
} 

Как я могу это сделать? Благодаря!

ответ

2

Tou может это сделать:

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 
+0

Спасибо! Просто впечатлил! – user889349

+0

Добро пожаловать :) –

1
function check(obj, key, value) { 
    return (obj[key]) ? (obj[key].indexOf(value) != -1) : false; 
} 
1

Использование 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

Смежные вопросы