【发布时间】:2018-07-10 09:04:34
【问题描述】:
我有一系列数据,它的大小逐渐增加。我想用它的 ID 找到我的数据的特定行。我有两个选择。首先:创建一个数组并将每个新行推送到该数组,每次我想要一行时,只需搜索数组中的项目或使用数组原型函数(查找)。另一种选择是创建一个对象,每次出现新行时,只需将此行添加为属性(属性名称将是行的 ID)。当我想找到一行时,只需通过其名称(Id)获取该对象的属性。现在我想知道哪个选项是最有效的方法? (或者有第三种选择吗?)
第一个选项:
const array = [
{
"Id":15659,
"FeederCode":169,
"NmberOfRepetition":1
},
{
"Id":15627,
"FeederCode":98,
"NmberOfRepetition":2
},
{
"Id":15557,
"FeederCode":98,
"NmberOfRepetition":1
}
]
每次有新行出现时,都会将新行推入此数组。
访问:array.find(x => x.Id === 15659)
第二个选项:
const object = {
15659:{
"Id":15659,
"FeederCode":169,
"NmberOfRepetition":1
},
15627:{
"Id":15627,
"FeederCode":98,
"NmberOfRepetition":2
},
15557:{
"Id":15557,
"FeederCode":98,
"NmberOfRepetition":1
}
}
每次出现新行时,都会向该对象添加一个新属性。
访问:object[15659]
编辑:我在某处读到,向现有对象添加新属性的成本太高。
【问题讨论】:
标签: javascript arrays performance object