javascript根据对象数组中的另一个对象获取值

javascript根据对象数组中的另一个对象获取值,javascript,Javascript,我试图从javascript中的对象数组返回一个值, 数组中的第一个对象是 dict=[{index:"1",caption:"AAAffterA",blurb:"stuff to write here asieh 1flsidg"}] 如果我有“标题”值(A),如何返回“blurb”值(B)? 我已经用很长的方法做到了,但我相信还有更简单的方法吗 A = "AAAffterA" var result = dict.map(function(a) {return a.caption;});

我试图从javascript中的对象数组返回一个值, 数组中的第一个对象是

 dict=[{index:"1",caption:"AAAffterA",blurb:"stuff to write here asieh 1flsidg"}]
如果我有“标题”值(A),如何返回“blurb”值(B)? 我已经用很长的方法做到了,但我相信还有更简单的方法吗

A = "AAAffterA"
var result = dict.map(function(a) {return a.caption;});
key = jQuery.inArray(A,result)
B = dict[key].blurb

首先,过滤数组以仅返回具有所需标题的元素,然后返回该元素(如果找到):

var A=“AAAffterA”,
dict=[{索引:“1”,标题:“AAAffterA”,简介:“这里要写的东西asieh 1flsidg”}];
//返回“A”的所有匹配项,
var results=dict.filter(函数(行){return row.caption==A;});
//获取第一个结果,如果未找到,则获取错误消息。
var found=results.length?结果[0]。广告语:“搜索未返回任何结果!”;
警报(发现)您可以使用jQuery吗

如果是,请使用
$grep

var dict=[{index:"1",caption:"AAAffterA",blurb:"stuff to write here asieh 1flsidg"}];

var results = $.grep(dict, function(e){ return e.caption == 'AAAffterA'; });

alert(results[0].blurb)

它将返回与数组中标题匹配的结果数组

只需调用一个函数

var dict=[{index:“1”,标题:“AAAffterA”,布告:“这里要写的东西asieh 1flsidg”},
a=“aaaftera”,
b=指令还原(功能(res,el){
返回el.caption==a?el.blurb:res;
},未定义);
警报(b)你差点就拿到了

不要返回
标题
,然后在
目录
中再次查找,只需从地图中返回
模糊
。它将返回类似这样的结果
[“这里要写的东西是asieh 1flsidg”]

现在,您可以通过直接从返回的数组中提取第一个结果来减少最后两行。新创建的数组的第一个元素是要返回的字符串。
[“要在这里写的东西”asieh 1flsidg][0]
只是
要在这里写的东西asieh 1flsidg

> dict=[{index:"1",caption:"AAAffterA",blurb:"stuff to write here asieh 1flsidg"}]
[ { index: '1',
    caption: 'AAAffterA',
    blurb: 'stuff to write here asieh 1flsidg' } ]
> dict.map ( function(a) { if (a.caption == "AAAffterA") return a.blurb } )
[ 'stuff to write here asieh 1flsidg' ]
由于数组可能有多个值,包括nil,
通过此数组过滤
,以返回非空结果,并使用
[0]
返回第一个非空结果

>[ ,,,'stuff to write here asieh 1flsidg' ,,,].filter( function(a) {    
   if (a!=null) return a 
  } ) [0]
    'stuff to write here asieh 1flsidg'
合并成一个最终函数

> dict.map ( function(a) 
 { if (a.caption == "AAAffterA") 
     return a.blurb } 
 ).filter( function(a) { 
    if (a!=null) return a } 
  ) [0]
'stuff to write here asieh 1flsidg'

这不太管用,因为我的数组dict中有多个对象,因此从dict.map返回的数组长度大于1,因此[0]元素并不总是填充,如果我删除[0]我会得到,,,,,,,,,,,,,,“在这里写入的东西asieh 1flsidg,,,,,,,,。需要为数组添加一个筛选器。筛选器(isNotNull)并返回第一个元素