2016-04-25 119 views
1

我需要你的帮助,搜索通过数组,并返回一个值

ID”希望能够拿出一个JavaScript函数,类似于下面的下面的代码结构,除了一个事实,我没有足够强大的编程能力来提供可行的解决方案。

我想能够输入的给定值,然后,使用该值,通过搜索一个数组并(在右侧的值:冒号)返回该值短名称

function test() { 

var filenames = [ 
     "REQUEST FOR INFO":"REQI", 
     "MEDIA CALL":"MC", 
     "ISSUES NOTE":"ISN" 
    ] 

EX1.) 

    var value_to_search_for = "REQUEST FOR INFO (ALPHA)" 

    if (value_to_search_for matches the value in the array filenames) then { 

     return "REQI" 

    } 

EX.2) 
    var value_to_search_for = "MEDIA CALL" 

    if (value_to_search_for matches value in the array filenames) then { 

     return "MC" 

    } 

} 
+0

你知道的对象? – Chiru

+2

它看起来像一个具有属性的对象。如果它应该是一个数组,则它是畸形的。 –

回答

1

您可以更改到对象,然后你可以这样做

var filenames = { 
 
    "REQUEST FOR INFO": "REQI", 
 
    "MEDIA CALL": "MC", 
 
    "ISSUES NOTE": "ISN" 
 
}; 
 

 
var getValue = function(val, obj) { 
 
    if (val in obj) return obj[val]; 
 
} 
 

 
console.log(getValue('ISSUES NOTE', filenames));

你也可以改变,要AR物体的光线,然后你可以做到这一点

var filenames = [ 
 
    {"REQUEST FOR INFO": "REQI"}, 
 
    {"MEDIA CALL": "MC"}, 
 
    {"ISSUES NOTE": "ISN"} 
 
]; 
 

 
var getValue = function(val, array) { 
 
    array.forEach(function(el) { 
 
    for (prop in el) { 
 
     if (prop == val) console.log(el[prop]); 
 
    } 
 
    }); 
 
} 
 

 
getValue('MEDIA CALL', filenames);

+0

谢谢Nenad,如果在我的字符串末尾没有backets值,但是如果有,alert(getValue('INFO(ABC)',filenames));出现未定义。我喜欢你要去的地方。非常感谢迄今为止所付出的努力:) – BobbyJones

+0

不客气。您需要完全匹配或值不匹配。但这就是你如何遍历这个数据结构。 –