在javascript中创建结构对象的解决方案

时间:2014-10-31 07:09:33

标签: javascript

Javascript没有结构。

所以我可以在javascript中创建一个类似struct abc的GLOBAL对象。

struct abc包含一些变量&另一个结构struct xyz的数组。

struct xyz {

  var age;
  var name;

};

struct abc {

  var start;
  var end;
  var length;

  struct xyz  xyz_array[100];


};

如果在javascript中无法构建结构,我该如何以这种格式保存数据?

=============================编辑我发现的一些解决方案============= ====

http://www.w3schools.com/js/js_object_definition.asp
Javascript: How to create an array of object literals in a loop

=============================================

var details = {
    Start: 0,
    End: 0,
    length: 0
};



var arr = [];
var len = 100;

for (var i = 0; i < len; i++) {
    arr.push({
        direction: "out",
        message  : ""
    });
}

=====================================

Array inside a Javascript Object?

var details = {
    Start: 0,
    End: 0,
    length: 0
    info_text : []
};



var len = 100;

for (var i = 0; i < len; i++) {
    details.info_text.push({
        direction: "out",
        message  : ""
    });
}

=========================================

5 个答案:

答案 0 :(得分:1)

TLDR:否。请改用对象。

JavaScript在语言中没有结构概念。您可以改为使用对象:

var xyz = {
    something: "hello world"
}

答案 1 :(得分:0)

Javascript中最接近的等价物是&#39;对象&#39;。您可以通过两种方式创建和使用它们,如下所示。

简单的例子,使用对象文字

var xyz = {
    age: 42,
    name: 'fred'
};

更复杂的例子,使用Javascript&#39;类&#39; (真正的功能)

function xyz(age, name) {
    this.age = age;
    this.name = name;
    this.getAge = function() { return age; }
}

var myXyz = new xyz(42, 'fred');
myXyz.getAge(); // Returns 42

答案 2 :(得分:0)

在JavaScript中,您可以使用function(){ ... },其中的行为可以更类似于其他语言中的,其中可以执行结构可以执行的操作,但更强大。< / p>

function xyz() {
   this.age = ...;
   this.name = ...;
}

您也可以使用var作为对象:

var xyz = { age: ... , name: ... };

答案 3 :(得分:0)

Javascript是一种基于对象的动态语言,不使用C语言中的struct概念。

根据您的要求,您可以使用 -

/* definition of an Object */
var xyz = function(age,name){
          this.age =  age;
          this.name = name;
    return this;
};

/* composition */
var abc = {
          start:'',
          end:'',
          length:'',
          xyz_pseudo_array: []
};

//push data inside the **xyz_pseudo_array** as and when needed, without having to worry about size-
abc.xyz_pseudo_array.push(new xyz(25,"Bill Gates"));

答案 4 :(得分:0)

引自JavaScript: The Good Parts

简单类型的JavaScript是数字,字符串,布尔值(trueandfalse),null, 并且未定义。所有其他值都是对象。数字,字符串和布尔值 对象就像它们有方法,但它们是不可变的。 JavaScript中的对象 是可变的密钥集合。在JavaScript中,数组是对象,函数是对象, 正则表达式是对象,当然,对象也是对象。

所以你可以使用object,例如:

function xyz(age, name){
    this.age = age;
    this.name = name;
}

var abc = {
    start : null,
    end : null,
    length: null

    xyz_array: []
}

abc.xyz_array.push( new xyz(33, 'johnDoe') );
abc.xyz_array.push( new xyz(32, 'jeanDoe') );

console.log(abc);