【问题标题】:how to filter JSON object in an array如何过滤数组中的 JSON 对象
【发布时间】:2020-08-25 01:20:22
【问题描述】:

我被这个问题困扰了好几天。

基本上,我的 JSON 文件包含一个包含许多项目的数组。

[
  {
    "table_schema": "A1",
    "table_name": "name1",
    "column_name": "date",
    "data_type": "name"
  },
  {
    "table_schema": "A1",
    "table_name": "name2",
    "column_name": "firstName",
    "data_type": "oid"
  },
  { 
    "table_schema": "A2",
    "table_name": "class",
    "column_name": "lastname",
    "data_type": "oid"
  }
]

我想在 HTML 中显示不同的 table_schema。我该如何做到这一点? 截至目前,我得到:

A1
A1
A2

我希望我的输出是:

A1
A2

我使用 nodeJS 作为后端,使用 svelte 作为前端。

这就是我现在拥有的东西

Catalog.svelte:

    <script>
    let tableinfo = [];

    onMount(async () => {
      const res = await fetch('http://localhost:3000/api/tables.json');
      tableinfo = await res.json();
      console.log(tableinfo);
    });
    </script>

  <div id='myData'>
    {#each tableinfo as info}    
      <p>{info.table_schema}</p>
    {/each}

【问题讨论】:

    标签: node.js json filter lodash svelte


    【解决方案1】:

    这会有所帮助

    const data = [{
        "table_schema": "A1",
        "table_name": "name1",
        "column_name": "date",
        "data_type": "name"
      },
      {
        "table_schema": "A1",
        "table_name": "name2",
        "column_name": "firstName",
        "data_type": "oid"
      },
      {
        "table_schema": "A2",
        "table_name": "class",
        "column_name": "lastname",
        "data_type": "oid"
      }
    ]
    
    let unique_table_schema = new Set(data.map(d=>d.table_schema))
    console.log(unique_table_schema)
    

    这将返回一个Set,其值为{'A1','A2'}。如果要将其转换为数组,请使用扩展运算符

    let array = [...unique_table_schema]
    

    【讨论】:

    • 谢谢你!这行得通!但是,如何在 HTML 中显示每个过滤后的数组?从 nw 开始,当我尝试在 html 中循环它时,它给了我 "a,b,c,d,e" "a,b,c,d,e" "a,b,c,d,e"
    猜你喜欢
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2019-09-05
    相关资源
    最近更新 更多