假设我在 C 中有以下内容
struct address{
char name;
int id;
char address;
};
struct address adrs[40]; //Create arbitrary array of the structure. 40 is example
adrs[0].name = 'a';
id[0] = 1;
...
Run Code Online (Sandbox Code Playgroud)
定义和创建用户定义结构数组的等效方法是什么。
谢谢
如果您要为对象预定义布局,您可能需要使用构造函数样式的函数。
function address() {
this.name = null;
this.id = null;
this.address = null;
}
Run Code Online (Sandbox Code Playgroud)
数组没有类型化,您不必指定长度。
var adrs = [];
Run Code Online (Sandbox Code Playgroud)
你可以address像这样创建一个新实例
var item = new address(); // note the "new" keyword here
item.name = 'a';
item.id = 1;
// etc...
Run Code Online (Sandbox Code Playgroud)
然后你可以push将新项目放到数组上。
adrs.push(item);
Run Code Online (Sandbox Code Playgroud)
或者,您可以从数组中添加一个新项目,然后通过索引器访问它。
// adrs has no items
adrs.push( new address() );
// adrs now has 1 item
adrs[0].name = 'a';
// you can also reference length to get to the last item
adrs[ adrs.length-1 ].id = '1';
Run Code Online (Sandbox Code Playgroud)
等效的方法是创建一个关联数组的数组。
var arr = new Array();
arr[0] = { name: "name 1", id: 100, address: "addr 01" };
arr[1] = { name: "name 2", id: 101, address: "addr 02" };
//...
Run Code Online (Sandbox Code Playgroud)
在此之后,您将能够执行以下操作:
arr[0].name = "new name 1";
Run Code Online (Sandbox Code Playgroud)
或者访问元素:
if (arr[1].name == "name 2") { // will be true
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。