在 JS 中创建一个对象

Creating an object in JS

本文关键字:一个对象 创建 JS      更新时间:2023-09-26

我有一个 for 循环,它基本上通过类别列表。 每个类别(字符串(都有 4 个不同的项目,可以是真或假。 下面是我的代码片段:

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 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
}
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(您无法使用 .length 属性获取对象的长度,因此categories.length不起作用。2( 要将成员添加到对象,您可以使用括号表示法:

object['member'] = 'string value';

或点表示法:

object.member = 'string value';

但不是这个:categories+= { category : items};