2012-02-22 98 views
0

我认为我正确措辞的称号,但JavaScript对象创建...与索引属性

可以说我有一个数组:

VAR ARR = [ '集1', '集2', 'SET3', 'SET4', 'SET5', 'set6'];

,我需要创建一个对象,是这样的:

'item(0).name' : '//some string' 

'item(0).value(0)' : 'set1' // a.k.a arr[0] 

'item(0).value(1)' : 'set2' // a.k.a arr[0] 

'item(0).value(2)' : 'set3' // a.k.a arr[0] 

等....

然后它继续下去,这也将有可能继续项目(1).NAME和所有其他属性此后将项(1)。价值(0),(1)项。价值(1),项目(1)。价值(2),等...

我明白,会有循环通过每个阵列去,然后使用ARR指数我能填充值,但我的麻烦围绕实际创建OBJ性能中心“项目()。名称”或“项目( ).value()'。如何实现这个目标?

UPDATE

这实际上是一个API调用的一部分,必须看起来像它的上面,因为它是在数据OBJ后来扩展,并通过转移到呼叫写入。希望能够清除一点点。

VAR数据= {

X:0,

Y:1,

Z:6,

“项(0)。名称': '字串',

'项(0)。价值(0)':' 设置1' ,

'项(0)。价值(1)': 'SET2',

'项(0)。价值(2)': 'SET3'

}

回答

0
function demo(name, vals) { 
    this.name = name; 
    this.value = vals || []; 
} 


var x = new demo('some string', ['set1','set2','set3','set4','set5','set6']); 

console.log(x.name); 
console.log(x.value[0]); // etc... 


var item = [x, new demo('some string2', ['set1','set2','set3','set4','set5','set6'])]; 
console.log(item[0].value[1]); // etc... 

或创建类似于包装(如果你不直接通过希望指数[..]):

function demo2(name, vals) { 
    this.name = name; 
    this.value = function(index) { 
     return vals[index]; 
    } 
} 

^h OPE这有助于-ck

0

考虑基于JSON的结构来代替。他们更自我描述,然后简单的数组。属性可以很好地任意使用。

{ 
    "firstName": "Jason", 
    "lastName": "Jones", 
    "address": { 
     "city": "San Francisco, CA", 
     "zip": 94121, 
     "address": "444 Columbus Ave" 
    }, 
    "email": [ 
     "[email protected]", 
     "[email protected]" 
     ] 
} 

编辑:您的数据

var data = { 
    'x':0, 
    'y':1, 
    'z':6, 
    'name':'something', 
    'item': [ 
     'value':'set1', 
     'value':'set2', 
     'value':'set3'  
    ] 
} 
+0

如果什么对象必须看起来就像上面的描述(?)?这样它可以扩展到另一个数据对象并与请求一起使用?我想,主要问题是如何去创建一个看起来像item(0).name(0)和/或item(0).value(0 ++)的对象。 – spez86 2012-02-22 21:53:27

+0

我已经增加了一个例子,我希望它是有道理的。 – 2012-02-22 22:34:29

+0

谢谢,但我认为我错误地解释了整个问题。我已经包括一个小提琴来解释我在找什么,我想我已经开始工作了。而且,我认为我也完全过分地考虑了整个方法。 http://jsfiddle.net/pRNZJ/1/ – spez86 2012-02-22 22:37:20