2014-10-31 74 views
0

Javascript没有结构。解决方案在javascript中创建结构对象

所以,我可以在JavaScript中创建一个像结构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 : "" 
    }); 
} 

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

+0

号不,你不能。 – ArtOfCode 2014-10-31 07:10:55

+0

在javascript – 2014-10-31 07:11:04

+0

中没有struct的概念,所以我如何实现这个...? – Katoch 2014-10-31 07:11:53

回答

-1

JavaScript是不使用的结构概念从C

为了您的需求的基于对象的动态语言您可以使用 -

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

正在一个山洞里打坐,刚回来。顺便说一句,为什么这是downvoted? – Subhranshu 2018-02-03 20:37:21

1

TLDR:否改为使用对象。

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

var xyz = { 
    something: "hello world" 
} 
+0

我想你的意思是写'var xyz = {something:'hello world'};' – Semicolon 2014-10-31 07:16:14

+0

噢。哎呀,谢谢 – ArtOfCode 2014-10-31 08:15:58

0

Javascript中最接近的等价物是'对象'。有两种方法可以创建和使用它们,如下所示。

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

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

更为复杂的例子,使用一个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 
0

在JavaScript中,你可以使用function(){ ... },其中可以充当更类似于其他语言中的,其中可以执行结构可以做的同样的事情,但功能更强大。

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

您也可以只使用var一个对象:

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

引用自JavaScript: The Good Parts

JavaScript的简单类型是数字,字符串,布尔值(trueandfalse),null, 和undefined。所有其他值都是对象。数字,字符串和布尔值是类似于对象的,因为它们有方法,但它们是不可变的。 JavaScript 中的对象是可变键控集合。在JavaScript中,数组是对象,函数是对象,正则表达式是对象,当然,对象也是对象。

所以,你可以使用对象,例如:

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