如何唯一标识表行?

时间:2018-01-18 01:57:52

标签: javascript arrays json reactjs html-table

在我的应用程序中,我导入一个JSON文件,然后将其显示在表格中。该表有3列。

有两个问题:

  1. 该表还具有排序和CRUD操作,因此using the array index for the row key is not best practice
  2. 与上面类似,我正在尝试实现编辑行的功能,并且通过索引这样做很挑剔,因为它们可能已经从排序或CRUD转移。
  3. 我提出了一些可能的解决方案,但它们似乎都很弱:

    1. 通过其可见列的组合唯一标识一行。这有问题,因为虽然这个数据集的重复行极不可能,但我认为这是可能的。
    2. 通过相对保证唯一的字段唯一标识行。例如,每一行都有一个创建日期,并且由于所有行都是在程序中手动生成的,我相信这可以作为唯一标识行的ID吗?有点感觉就像某个日期确定一行是不好的但不确定。不确定。
    3. 通过所有字段(可见和隐藏)的组合唯一标识一行。可能是缓慢还是不必要的复杂?
    4. 在创建行时,为未向用户显示的行分配ID,并将其保留在已保存的文件中。也可能需要保存一个全局计数器变量(因为如果删除了一行,我们不想重新使用该ID,我们需要知道我们从哪里停止)。
    5. 为每一行分配一个GUID?不需要存储索引计数器,但需要更多空间(虽然文件相对较小,所以我不确定这有多重要。)
    6. 我还缺少其他或更好的方法吗?这通常如何处理?

1 个答案:

答案 0 :(得分:0)

我选择4或5,但稍有改动:

您可以按原样保留JSON。在导入 JSON后,您可以映射每个项目并为其指定IDGUID - 为了简单起见,我使用ID,但它是&#39由你决定。在程序执行期间,该字段将用于CRUD操作和/或排序。

当您的计划完成后,请重新映射您的数据,然后以您收到的相同格式保存(删除您已添加的新道具)。