在 JS 中创建一个对象
Creating an object in JS
我有一个 for 循环,它基本上遍历类别列表。每个类别(字符串)有 4 个不同的项目,可以是 true 或 false。下面是我的代码片段:
var i,
category,
items,
categories= {};
for (i = 0; i < categories.length; i++) {
category = categories[i];
items = {};
items.first = availableItems[i][0] == true;
items.second = availableItems[i][1] == true;
items.third = availableItems[i][2] == true;
items.fourth = availableItems[i][3] == true;
categories+= { category : items};
}
我想最终得到的是如下所示的类别对象结构:
{ category1 : {
first : true,
second : true,
third : false,
fourth : true
},
category2 : {
first : true,
second : true,
third : false,
fourth : false
},
category3 : {
first : true,
second : true,
third : false,
fourth : false
}
}
谁能告诉我我做错了什么?
var category = new Object;
for (i = 0; i < 2; i++) {
category['category' + (i).toString()] = (function() {
var obj = {};
obj.first = true == true;
obj.second = false == true;
return obj;
})();
};
您的代码无效,因为 1) 您 cannot get the lenght of an object with the .length property,因此 categories.length
无效。和 2) 要将成员添加到对象,您可以使用方括号表示法:
object['member'] = 'string value';
或点符号:
object.member = 'string value';
但不是这个:categories+= { category : items};
var result;
for(var i=0;i<availableItems.length;i++){
var index = i+1;
result["category"+index]["first"] = availableItems[i][0] == true
result["category"+index]["second"] = availableItems[i][1] == true
result["category"+index]["third"] = availableItems[i][2] == true
result["category"+index]["fourth"] = availableItems[i][3] == true
}
我有一个 for 循环,它基本上遍历类别列表。每个类别(字符串)有 4 个不同的项目,可以是 true 或 false。下面是我的代码片段:
var i,
category,
items,
categories= {};
for (i = 0; i < categories.length; i++) {
category = categories[i];
items = {};
items.first = availableItems[i][0] == true;
items.second = availableItems[i][1] == true;
items.third = availableItems[i][2] == true;
items.fourth = availableItems[i][3] == true;
categories+= { category : items};
}
我想最终得到的是如下所示的类别对象结构:
{ category1 : {
first : true,
second : true,
third : false,
fourth : true
},
category2 : {
first : true,
second : true,
third : false,
fourth : false
},
category3 : {
first : true,
second : true,
third : false,
fourth : false
}
}
谁能告诉我我做错了什么?
var category = new Object;
for (i = 0; i < 2; i++) {
category['category' + (i).toString()] = (function() {
var obj = {};
obj.first = true == true;
obj.second = false == true;
return obj;
})();
};
您的代码无效,因为 1) 您 cannot get the lenght of an object with the .length property,因此 categories.length
无效。和 2) 要将成员添加到对象,您可以使用方括号表示法:
object['member'] = 'string value';
或点符号:
object.member = 'string value';
但不是这个:categories+= { category : items};
var result;
for(var i=0;i<availableItems.length;i++){
var index = i+1;
result["category"+index]["first"] = availableItems[i][0] == true
result["category"+index]["second"] = availableItems[i][1] == true
result["category"+index]["third"] = availableItems[i][2] == true
result["category"+index]["fourth"] = availableItems[i][3] == true
}