3

我现在正在为网络构建一个文件管理系统。但是我对javascript数组有一些问题。

在系统中,有机会为文件添加标签。
在 javascript 中,我希望在 1 个数组中使用带有 fileId 的标签的 ID 和值。(如下所示)。我还希望 FileId 和 LabelId 不作为数组的索引。因为 FileId 和 labelId 可以是一个非常高的数字。然后我有一个充满未定义项目的数组。

这是我想要的一个例子:

array[FileId][labelId,labelValue]

如果您有解决方案,请帮助我。

谢谢。

4

5 回答 5

1

我不完全确定你在问什么,但数组中的数组是可能的......

a = []
a.push('a')

Result:
["a"]
a.push(['hello','world'])

Result:
["a", 
 Array[2]
   0: "hello"
   1: "world"
]
于 2013-06-18T17:27:44.583 回答
1

你可以形成这样的结构:

arr = [{FieldId:fid_value, Labels:[{labelId:lid_value, labelValue:label_text}]}]

基本上,一个包含对象的数组。每个对象包含两个字段:字段 id 和标签。标签也是一个包含对象的数组。每个对象都有标签 id 和标签值属性。

创建新项目的代码可能如下所示:

arr = array();
fieldObj = {FieldId:fid_value, Labels:[]};
fieldObj.Labels.push({labelId:lid_value, labelValue:label_text});
fieldObj.Labels.push({labelId:lid_value, labelValue:label_text});
fieldObj.Labels.push({labelId:lid_value, labelValue:label_text});
...
arr.push(fieldObj);
于 2013-06-18T17:30:26.397 回答
1

听起来您想要对象而不是数组:

var obj = {};

obj["fieldName"] = {label: "labelname", labelId: 1234};

然后您可以通过以下方式访问这些数据:

obj["fieldName"].label
于 2013-06-18T17:31:28.840 回答
0

你也可以使用一个对象

var data = {};
data["item1"] = { "labelId" : "foo1", "labelValue" : "bar1" };
data["item2"] = { "labelId" : "foo2", "labelValue" : "bar2" };
console.log(data.item1.labelId);

有很多方法可以构造对象,通常使用对象比记住索引 0 是 id 而索引 1 是值要好。

于 2013-06-18T17:30:01.717 回答
0

使用应该使用对象以及数组:

var root = [{
        id: '12345',
        metadata: {
            label: 'foo',
        },
        type: 'folder',
        name: 'Folder Name',
        children: [...]
    }
];

现在,您可以遍历根目录中的文件夹和文件:

for (var i = 0; i < root.length; i++) {
    var item = root[i];

    console.log(item.type, item.name, item.id);
}
于 2013-06-18T17:31:22.877 回答