在javascript中存储和搜索键值对时,数组是否比对象更好?
我从数据库中获取数据,并将其存储在键值对中的数组中,这样我就可以获得如下所示的各个键的值在javascript中存储和搜索键值对时,数组是否比对象更好?,javascript,Javascript,我从数据库中获取数据,并将其存储在键值对中的数组中,这样我就可以获得如下所示的各个键的值 var test = []; for () //fetching and storing from db { test[key_array[i]] = "value i"; . . . } test["id_1"] = "value 1"; //to get the value of id_<number> va
var test = [];
for () //fetching and storing from db
{
test[key_array[i]] = "value i";
.
.
.
}
test["id_1"] = "value 1"; //to get the value of id_<number>
var测试=[];
for()//从数据库获取和存储
{
测试[key_array[i]]=“value i”;
.
.
.
}
测试[“id_1”]=“值1”//获取id的值_
我们也能做到这一点。如果我们想要一个快速优化的代码,我想知道哪个是更好的选择。
在javascript中存储和搜索键值对时,数组是否比对象更好
不。事实上,你不是把数组当作数组来使用,而是把它当作对象来使用。你完全可以改变你的想法
var test = [];
到
它会做和你现在看到的一样的事情:
var-test={};
测试[“id_1”]=“值_1”;
控制台日志(测试[“id_1]”);
var test2=Object.create(null);
test2[“id_2”]=“value_2”;
log(test2[“id_2”])数组,只是一种专门用于存储事物序列的对象。如果计算typeof[],它将生成“object”
数组的概念是存储具有相同类型或逻辑结构的数据序列。因此,逻辑将来自db的数据放入数组。请注意,您应该避免这种情况,因为它可能会变得非常混乱:
var测试=[];
测试[“id_1”]=“值_1”;
测试[-1]=“值0”;
日志(test[-1],test[“id_1]”);
log(test.length,Array.isArray(test))代码>为什么要将数组作为普通对象的一部分?在java脚本中,所有的东西都是一个对象,因此可以像这样为它分配属性,但将其初始化为数组并没有什么区别,因为数组的方法比纯对象多。主要的问题是,您不能使用stringify将数组持久化为索引以外的其他属性……“您可以将var test=[];
更改为var test={};
,实际上您应该避免confusion@scraaappy-的确如此。我很惊讶我没有这么说(最初;-)。
var test = {};
// or
var test = Object.create(null); // To avoid it having a prototype