简体   繁体   English

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

[英]solution to create structure object in javascript

Javascript do not have structures. Javascript没有结构。

So can i create a GLOBAL object like struct abc in javascript . 所以我可以在javascript中创建像struct abc这样的GLOBAL对象。

Struct abc contains some variables & array of another structure struct xyz. 结构abc包含一些变量和另一个结构struct xyz的数组。

struct xyz {

  var age;
  var name;

};

struct abc {

  var start;
  var end;
  var length;

  struct xyz  xyz_array[100];


};

If structures is not possible in javascript how can i save data in this format ? 如果无法在javascript中使用结构,该如何以这种格式保存数据?

============================= Edit some solution i found ================= ============================编辑一些我发现的解决方案================ =

http://www.w3schools.com/js/js_object_definition.asp http://www.w3schools.com/js/js_object_definition.asp
Javascript: How to create an array of object literals in a loop Javascript:如何在循环中创建对象文字数组

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

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? 数组内的Javascript对象?

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  : ""
    });
}

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

TLDR: No. Use objects instead. TLDR:否。请改用对象。

JavaScript does not have a struct concept in the language. JavaScript在语言中没有结构概念。 You can instead use objects: 您可以改为使用对象:

var xyz = {
    something: "hello world"
}

The closest equivalent in Javascript is an 'object'. Javascript中最接近的等效项是“对象”。 There are two ways you can create and use them, demonstrated below. 您可以通过两种方式创建和使用它们,如下所示。

Simple example, using an object literal 使用对象文字的简单示例

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

More complex example, using a Javascript 'class' (really function) 使用Javascript“类”(真正的功能)的更复杂的示例

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

In JavaScript you can use function(){ ... } , in which can act more similar to a class in other languages, in which can do the same thing a struct can do but more powerful. 在JavaScript中,您可以使用function(){ ... } ,该函数的行为与其他语言中的更相似,在该函数中,结构可以完成相同的任务,但功能更强大。

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

You can also just use var for an object: 您也可以仅将var用于对象:

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

Javascript is an object-based dynamic language that doesn't use the struct concept from C. Javascript是一种基于对象的动态语言,不使用C语言中的struct概念。

For your requirement you can use - 根据您的要求,您可以使用-

/* 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"));

Cited from JavaScript: The Good Parts JavaScript引用:优秀的部分

The simple types of JavaScript are numbers, strings, booleans (trueandfalse),null, and undefined. JavaScript的简单类型是数字,字符串,布尔值(true和false),null和undefined。 All other values are objects. 所有其他值都是对象。 Numbers, strings, and booleans are object-like in that they have methods, but they are immutable. 数字,字符串和布尔值类似于对象,因为它们具有方法,但它们是不可变的。 Objects in JavaScript are mutable keyed collections. JavaScript中的对象是可变键集合。 In JavaScript, arrays are objects, functions are objects, regular expressions are objects, and, of course, objects are objects. 在JavaScript中,数组是对象,函数是对象,正则表达式是对象,当然,对象是对象。

So you can use object, example : 这样就可以使用对象,例如:

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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM