jquery - 获取数组值

时间:2011-09-20 02:36:03

标签: jquery arrays

我想知道,我有这个拥有我需要的所有数据的数组。我希望能够做的是选择StateCode 5,它显示名称值等待银行业务详细信息

这是阵列布局。

var status = [
  {StateCode:1, Name:"1st Email"},
  {StateCode:2, Name:"1st Contact"},
  {StateCode:4, Name:"2nd Email"},
  {StateCode:3, Name:"Call Back"},
  {StateCode:5, Name:"Awaiting Banking Details"},
  {StateCode:6, Name:"Detail Form Emailed"},
  {StateCode:7, Name:"Refused Banking Details"},
  {StateCode:8, Name:"Signed Up Silver"},
  {StateCode:9, Name:"Welcome Letter Emailed"},
  {StateCode:10, Name:"Optimised on Web"},
  {StateCode:11, Name:"Upgraded To Gold"},
  {StateCode:12, Name:"Sent Upgrade Email"},
  {StateCode:13, Name:"Upgraded to Platinum"},
  {StateCode:14, Name:"Not Interested"}
];

3 个答案:

答案 0 :(得分:2)

您必须迭代对象,并检查他们的StatusCode

var value;
$.each(status, function(){
    if (this.StateCode == 5) {
        value = this.Name;
        return false;
    }
});

答案 1 :(得分:1)

你走了:

$.each(status, function(i, value) {
   if (value.StateCode === 5) {
      alert(value.Name);
      return false;
   }
});

each将对您传递给它的任何对象或数组起作用。请注意,它会将两个值传递给回调函数:集合中的索引和该索引处的值。

答案 2 :(得分:0)

如果您需要定期执行此操作,那么最好将此数据放入更好的查找表单中:

var status = [
  {StateCode:1, Name:"1st Email"},
  ...
  {StateCode:13, Name:"Upgraded to Platinum"},
  {StateCode:14, Name:"Not Interested"}
];

function makeObj(array)
{
    var out = {}, i, o;
    for (i = 0; i < array.length; i++) {
        o = array[i];
        out[o.StateCode] = o.Name;
    }
    return(out);
}

var lookupState = makeObj(status);

然后,只要你想查找一个StateCode,就可以使用这种类型的代码:

var name = lookupState[x];
相关问题