我认为我正确地说了这个标题,但是......
假设我有一个阵列:
var arr = ['set1','set2','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]
等...
然后继续,还可以继续 item(1).name ,之后所有其他属性将是 item(1).value(0), item(1).value(1),item(1).value(2)等......
我知道每个数组都会有循环,然后使用arr索引我可以填充值,但是我的麻烦在于实际创建obj属性' item()。name '或' item()。value()'。如何实现这一目标?
的更新 的
这实际上是API调用的一部分,并且必须看起来像上面所写,因为它稍后在数据obj中扩展并传递给调用。希望能稍微清理一下。
即
var data = {
x:0,
y:1,
z:6,
'item(0).name':'string',
'item(0).value(0)':'set1',
'item(0).value(1)':'set2',
'item(0).value(2)':'set3'
}
答案 0 :(得分: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];
}
}
希望这有助于确认
答案 1 :(得分:0)
考虑使用基于JSON的结构。它们比简单的数组更具自我描述性。属性可以非常随意。
{
"firstName": "Jason",
"lastName": "Jones",
"address": {
"city": "San Francisco, CA",
"zip": 94121,
"address": "444 Columbus Ave"
},
"email": [
"jason@sf.com",
"sjones@adobe.com"
]
}
修改:您的数据(?)
var data = {
'x':0,
'y':1,
'z':6,
'name':'something',
'item': [
'value':'set1',
'value':'set2',
'value':'set3'
]
}