如何过滤数组中的JSON对象

问题描述

在这个问题上困扰了好几天。

基本上我的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"
  }
]

我想获取独特的table_schema以在HTML中显示。我该如何实现? 截至目前,我得到了:

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}

解决方法

这会有所帮助

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的{​​{1}}。如果要将其转换为数组,请使用扩展运算符

{'A1','A2'}