Javascript三维数组与对象文字
Javascript three dimensional arrays vs Object literal
以下两种方案中哪一种表现更好,并且感觉更自然:
-
使用对象文本:
var object = { 'key1': [e1, e2, e3, e4, .., en], 'key2': [e1, e2, e3, e4, .., en], 'key3': [e1, e2, e3, e4, .., en], ..., 'keyn': [e1, e2, e3, e4, .., en] }
-
使用二维数组(在二维上具有唯一的第一元素)
var array = [ ['key1', [e1, e2, e3, e4, .., en], ['key2', [e1, e2, e3, e4, .., en], ['key3', [e1, e2, e3, e4, .., en], ..., ['keyn', [e1, e2, e3, e4, .., en] ];
如果数据结构的主要目的是对key1,key2,key3,..,keyn进行纯迭代,并对每个e1,e2,e3,..,en执行一些操作。
注意:不确定是否相关,但这两个结构在初始化期间没有按原样定义。 在需要迭代和处理之前,object[key] = [e1, ..];
和array.push([key, [e1, ..]);
在整个系统中使用。
编辑:在整个应用程序中,我需要访问数组([e1, e2, .., en]
)以向其推送更多元素。当然,我需要通过字符串键来做。
所以我想它有两部分,添加元素并迭代它们。
在这种情况下,
数组会稍微快一些,但不会在任何明显的程度上,迭代它们中的每一个本质上是相同的。
数组迭代
for(var i in array){//i is the index of the array
keyName = array[i][0];
arrayOfValues = array[i][1];
}
对象迭代
for(var i in object){//i is the keyname
key = i;
arrayOfValues = object[i];
}
但是,如果您使用 keyid 查找并附加到内部数组,我会使用该对象。
在数组中按键 ID 查找
var keyId = "key123456";
var arrayOfValues=null;
for(var i in array){
if(array[i][0] == keyId){
arrayOfValues = array[i][1];
break;
}
}
在对象中按键 ID 查找
var keyId = "key123456"
var arrayOfValues = object[keyId]
最好
使用对象文字,因为您不需要初始化更多数组,因此性能可能会更好,但这取决于您做事的方式。
如果要声明数组,则可以声明同一数组中的所有元素,其中声明自身名称的元素位于该数组中,因此跳过第一个索引(0)来迭代数组。想法:
var array = [
['key1', 1, 2, 3, 4, 9],
['key2', 1, 2, 3, 4, 9],
['key3', 1, 2, 3, 4, 9],
['keyn', 1, 2, 3, 4, 9]
];
for(var i = 0, el; el = array[i]; i ++) {
for(var b = 1, len = el.length; b < len; b ++) {
console.log(el[b]);
}
}
我认为这几乎与声明对象相同,但是数组除了具有Object
构造函数外,它们还具有Array
构造函数,然后我"相信"对于性能来说,它比声明对象文字要慢得多。
相关文章:
- 如何计算对象文字中的键
- 对象文字方法上的Javascript绑定不起作用
- 可以使用“;创建“;作为JavaScript对象文字中的属性名称
- 这两种不同的创建对象文字的方法有什么区别
- Javascript对象文字,POST问题
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 如何使用'这个“;对象文字中的关键字
- JS对象文字中的方法和子方法
- 向JavaScript对象文字添加数据
- Javascript对象文字,如何使用“this”来引用对象中的变量
- 如何将xml文件转换为javascript中的对象文字
- 什么's对象文字中带引号和不带引号的键之间的区别
- 使用窗口对象练习我的对象文字函数
- 对象文字数据表中的 Google 可视化样式角色
- 如何创建作用域的动态、基于实例的对象文字
- Javascript将字符串中的对象转换为对象文字
- 我需要一些帮助来理解JavaScript中的对象文字函数
- 为什么动画设置加载在TweenMax中的两个单独的对象文字中
- 对象文字语法怪异
- 对象文字中的类