如何有效地创建多维javascript数组
How do I efficiently create multi-dimensional javascript array?
我需要存储类似的信息:
tag_array['design1']['0'][0]['x'] = 100;
tag_array['design1']['0'][0]['y'] = 100;
tag_array['design1']['0'][0]['w'] = 710;
tag_array['design1']['0'][0]['h'] = 332;
如果它是PHP,但在javascript中不起作用,这会起作用。
如何使用正确的javascript语法创建相同的数组?
在PHP中,您可以这样做,因为它也会生成父元素(实际上会抛出警告)。在JavaScript中,它会出错,因为父元素不存在。
与其把它做成那样,不如试着一次把它做成这样:
var tag_array = {
design1: {
'0': [{
x: 100,
y: 100,
w: 710,
h: 332
}]
}
};
这应该会给你想要的结构。
UPDATE:Answer已更新,以反映第一个0
可以是字符串的事实。
如果你想用程序实现,那么因为JavaScript要求你有这种类型的结构
tag_array = {};
tag_array['design1'] = {};
tag_array['design1']['0'] = [];
tag_array['design1']['0'][0] = {};
tag_array['design1']['0'][0]['x'] = 100;
您可以制作一个prototype
函数来为创建对象/数组结构
Object.defineProperty(Object.prototype, 'addDimensions', { value: function(){
var prop = arguments[0];
if(this[prop] !== undefined){
if(typeof this[prop] !== 'object') throw 'Property "'+prop+'" is already defined.'
}else{
if(arguments.length > 1 && ~~arguments[1] === arguments[1] && arguments[1] >= 0) this[prop] = [];
else this[prop] = {};
}
if(arguments.length > 1){
this[arguments[0]].addDimensions.apply(
this[arguments[0]],
Array.prototype.slice.call(arguments,1)
);
}
return this;
},
enumerable: false });
并在空对象{}
上调用它
var myArrayLikeObject = ({}).addDimensions('design1','0',0); // {design1: [ [ {} ] ] }
或数组[]
(仅当第一个arg是整数时)
var myMultiArray = [].addDimensions(0,'hi',0); // [ {hi: [ {} ] } ]
或在现有阵列或对象上
var a = [0,1,2];
a.addDimensions(3,0); // a = [0, 1, 2, [ {} ] ]
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)