【问题标题】:How to Parse an JS Array?如何解析 JS 数组?
【发布时间】:2011-05-26 19:14:24
【问题描述】:

我有以下信息:

  1. 城市名称,在本例中为 Littelside。这存储在变量var city

  2. 我有一个 {} 对象数组。每个都包含地址、城市、名称、州和邮政编码

[{"address":"07288 Albertha Station",**"city":"Littelside"**,"created_at":"2011-05-25T19:24:51Z","id":1,"name":"Mr. Emmitt Emmerich","state":"Missouri","updated_at":"2011-05-25T19:24:51Z","zip":"75475-9938"},{NEXT OBJECT WITH ADDRESS CITY ETC}]

如何使用var city作为搜索词来解析数组,并返回与匹配城市的数组的地址、城市、州、名称和邮编?

谢谢!

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

    您要查找的函数是$.grep()

    var city='Littelside';
    
    var cucc=$.grep(your_array, function (a) {
        return a.city==search;
    })[0];
    

    $.grep 仍将返回一个数组,其中包含满足过滤器功能的所有元素。在这里,我使用[0] 获得第一个结果,如果您确定会有一个结果,这很好。所以cucc 将拥有您正在寻找的整个对象。

    jsFiddle Demo

    【讨论】:

      【解决方案2】:
      var myarr  =  [{"address":"07288 Albertha Station","city":"Littelside","created_at":"2011-05-25T19:24:51Z","id":1,"name":"Mr. Emmitt Emmerich","state":"Missouri","updated_at":"2011-05-25T19:24:51Z","zip":"75475-9938"}];
      var city = 'Littelside';
      $.each(myarr,function(key,value){
          if(value['city']== city){
              alert('hello');
          }
      })
      

      这是working demo

      【讨论】:

      • books no...有网络的时候谁还需要书...比我读过的任何书都更有帮助
      • @JZ Javascript:Douglas Crockford 的优秀部分是必须的:)。
      【解决方案3】:

      我使用的一个函数。

      function arrayIndexOfProp(arr, prop, obj) {
              var i = arr.length;
              while (i--) {
                  if (arr[i] && arr[i][prop] === obj) {
                      return i;
                  }
              }
              return -1;
          }
      
      var index = arrayIndexOfProp(theArray, "city","Littelside");
      // do stuff with theArray[index]
      

      【讨论】:

      • 谢谢!在 for 循环中保存一些字符的一点点小聪明:)
      【解决方案4】:

      Array.prototype.reduce

      Array.prototype.reduce(
          function (prev, current) {
            return prev || current.city === "Littelside" ? current : null;
          })
      

      【讨论】:

      【解决方案5】:

      遍历数组,直到找到the_array[i].city 匹配的数组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-20
        • 2014-10-08
        • 2015-09-06
        • 1970-01-01
        相关资源
        最近更新 更多