首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$.inArray深度搜索

$.inArray深度搜索
EN

Stack Overflow用户
提问于 2017-06-08 01:44:06
回答 2查看 112关注 0票数 2

我有这样一个json文件:

代码语言:javascript
复制
{
    items: 
        [{  id: 1,
            catalog: {
                supplier: {
                    priority: 1
                },
            }
        },
        {   id: 2,
            catalog: {
                supplier: {
                    priority: 3
                },
            }
        },
        {   id: 3,
            catalog: {
                supplier: {
                    priority: 1
                },
            }
        }]

现在,我想使用$.inArray函数对items数组进行深入搜索。例如,目录/供应商/优先级为1的所有项目。

就像这样:

代码语言:javascript
复制
$.inArray(1, data.items(.catalog.supplier.priority)) > -1

我怎样才能完成这种深度搜索?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-08 02:09:59

您也可以使用$.grep:

代码语言:javascript
复制
var data = {
    items: 
        [{  id: 1,
            catalog: {
                supplier: {
                    priority: 1
                },
            }
        },
        {   id: 2,
            catalog: {
                supplier: {
                    priority: 3
                },
            }
        },
        {   id: 3,
            catalog: {
                supplier: {
                    priority: 1
                },
            }
        }]
 };
 
 var arr = jQuery.grep(data.items, function( a ) {
  return a.catalog.supplier.priority >1;
});

console.log(arr);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

票数 2
EN

Stack Overflow用户

发布于 2017-06-08 02:06:37

我有另一个使用Javascript的解决方案。

代码语言:javascript
复制
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <title>Demo</title>
  <style>
    div {
      color: blue;
    }

    span {
      color: red;
    }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>

<body>

  <span></span>

  <script>
    var arr = {
      items: [{
          id: 1,
          catalog: {
            supplier: {
              priority: 1
            },
          }
        },
        {
          id: 2,
          catalog: {
            supplier: {
              priority: 3
            },
          }
        },
        {
          id: 3,
          catalog: {
            supplier: {
              priority: 1
            },
          }
        }
      ]
    };
    var $spans = $("span");

    var results = [];
    for (var i=0 ; i < arr.items.length ; i++)
    {
        if (arr.items[i].catalog.supplier.priority === 1) {
            results.push(arr.items[i]);
        }
    }

    $spans.eq(0).text(JSON.stringify(results));
  </script>

</body>

</html>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44425350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档