将数据保存为对象或数组?

时间:2015-10-11 23:05:59

标签: javascript arrays object

我有一些像

这样的数据
4 0.128 0.039
5 0.111 0.037
6 0.095 0.036

我需要通过已知的第一个值获取第二个和第三个值。 如果我的值为4,我想要取回两个变量:a = 0.111b = 0.037

用于存储上述数据以便简单访问数据的最佳变量类型是什么?一个对象或一个多维数组?

3 个答案:

答案 0 :(得分:2)

为了便于访问,我选择了一个包含数组的对象:

{
    '4': [ 0.128, 0.039 ],
    '5': [ 0.111, 0.037 ],
    ... 
}

在数组上使用对象的第二个原因是易于迭代。想象一下:

var myData = [];
myData[4]  = [ 0.128, 0.039 ];
myData[10] = [ 42, 23 ];

for (var i = 0; i < myData.length; i++)
{
    console.log(myData[i]);
}

会给你

null
null
null
null
[ 0.128, 0.039 ]
null
null
null
null
null
[ 42, 23 ]

......这可能不是你想要的;)

答案 1 :(得分:1)

你想要做的是将它保存为json对象,或者只是作为数组保存,如下所示:

创建:

var obj = { "4":[0.128, 0.039], "5":[0.111, 0.037],"6":[0.095, 0.036] }

检索:

obj.4 -> [0.128, 0.039] OR obj['4'] OR obj[0]
obj.5[0] -> 0.111 OR obj['5'][0] OR obj[1][0]
obj.5[1] -> 0.037 OR obj['5'][1] OR obj[1][1]

循环检索obj:

for (var key in obj) {
    alert(obj[key]); 
}

答案 2 :(得分:1)

如果元素的顺序很重要,我个人会使用数组,否则我会使用对象(对象不利于保存顺序)。

  • 数组带有push(),pop(),sort(),splice()等方法。
  • 如果您有唯一的密钥,对象就很好。

最后,它归结为什么是你想要完成的最好的工具。