Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中具有唯一/自动增量ID的对象的数据结构_Javascript_Arrays - Fatal编程技术网

JavaScript中具有唯一/自动增量ID的对象的数据结构

JavaScript中具有唯一/自动增量ID的对象的数据结构,javascript,arrays,Javascript,Arrays,我正在寻找一种方法来处理Javascript中应该具有唯一ID的对象列表。我希望能够添加、删除和编辑(通过其ID)此列表中的对象,在列表上循环并能够将其存储在JSON文件中。 我的天真实现如下所示:[6,{“ID”:4,“name”:“test”},{“ID”:5,“name”:“test2”}] 每次我向数组中添加一个对象时,我都会将位置[0]中的数字作为ID,并增加位置[0]中的数字 当我思考如何在这种数据结构中编辑一个元素时(我的想法是使用indexOf()或普通的来处理),我开始怀疑我的

我正在寻找一种方法来处理Javascript中应该具有唯一ID的对象列表。我希望能够添加、删除和编辑(通过其ID)此列表中的对象,在列表上循环并能够将其存储在JSON文件中。
我的天真实现如下所示:
[6,{“ID”:4,“name”:“test”},{“ID”:5,“name”:“test2”}]

每次我向数组中添加一个对象时,我都会将位置
[0]
中的数字作为ID,并增加位置
[0]
中的数字
当我思考如何在这种数据结构中编辑一个元素时(我的想法是使用
indexOf()
或普通的
来处理
),我开始怀疑我的数据结构是否真的是解决我的问题的最佳方法

我的问题:是否有更好的数据结构/方式来处理JavaScript中的对象,以满足我的需求


提前感谢您的帮助

读取最后一个成员的ID,并为下一个要添加的ID增加该ID。这样你就可以摆脱索引成员。当选择一个对象来编辑它时,标准是什么?您知道它的ID吗,或者…?好的,所以
.indexOf()
无法找到项目。使用对象而不是数组可能会更好,这样您就可以立即按ID进行选择而无需搜索—可能类似于:
var data={nextID:6,items:{4:{“ID”:4,“name”:“test”},5:{“ID”:5,“name”:“test2”}}
。然后在变量
ID
中给定一个ID,您可以说
data.items[ID]
来获取该对象。您可以添加一个返回下一个ID的方法,或者一个允许您添加项目并自动分配下一个ID的方法,等等。
Map
可以工作,但由于浏览器支持不足,我还没有真正使用它们。但是,即使是一个普通的对象也可以按照您的需求以类似于地图的方式使用,并且您可以轻松地向该对象添加一些帮助器方法来处理添加和删除项。(在JSON中存储时,它不会存储方法,只存储实际数据。)如果您开发的平台支持它,一定要使用
Map
。读取最后一个成员的ID,并增加该ID以添加下一个ID。这样你就可以摆脱索引成员。当选择一个对象来编辑它时,标准是什么?您知道它的ID吗,或者…?好的,所以
.indexOf()
无法找到项目。使用对象而不是数组可能会更好,这样您就可以立即按ID进行选择而无需搜索—可能类似于:
var data={nextID:6,items:{4:{“ID”:4,“name”:“test”},5:{“ID”:5,“name”:“test2”}}
。然后在变量
ID
中给定一个ID,您可以说
data.items[ID]
来获取该对象。您可以添加一个返回下一个ID的方法,或者一个允许您添加项目并自动分配下一个ID的方法,等等。
Map
可以工作,但由于浏览器支持不足,我还没有真正使用它们。但是,即使是一个普通的对象也可以按照您的需求以类似于地图的方式使用,并且您可以轻松地向该对象添加一些帮助器方法来处理添加和删除项。(当将其存储在JSON中时,它不会存储方法,而只存储实际数据。)如果您开发的平台支持它,那么一定要使用
Map