More efficient way to search an array of javascript objects?

后端 未结 2 776
终归单人心
终归单人心 2020-12-30 17:35

Not sure about posting rules, but I will tell you out of the gate that this is a repeat question of this one, but I am asking if this is the \"best practice\" way to do this

2条回答
  •  自闭症患者
    2020-12-30 17:52

    @jondavidjohn - you can use this javascript lib, DefiantJS (http://defiantjs.com), with which you can filter matches using XPath on JSON structures. To put it in JS code:

    var data = [
       {
          "restaurant": {
             "name": "McDonald's",
             "food": "burger"
          }
       },
       {
          "restaurant": {
             "name": "KFC",
             "food": "chicken"
          }
       },
       {
          "restaurant": {
             "name": "Pizza Hut",
             "food": "pizza"
          }
       }
    ].
    res = JSON.search( data, '//*[food="pizza"]' );
    
    console.log( res[0].name );
    // Pizza Hut
    

    Here is a working fiddle;
    http://jsfiddle.net/hbi99/weKVL/

    DefiantJS extends the global object with the method "search" and returns an array with matches (empty array if no matches were found). You can try out the lib and XPath queries using the XPath Evaluator here:

    http://www.defiantjs.com/#xpath_evaluator

提交回复
热议问题