假设我在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;
...
定义和创建用户定义结构数组的等效方法是什么。
由于
答案 0 :(得分:4)
如果您要为对象预定义布局,则可能需要使用构造函数样式的函数。
function address() {
this.name = null;
this.id = null;
this.address = null;
}
数组未键入,您不必指定长度。
var adrs = [];
你可以像这样创建address
的新实例
var item = new address(); // note the "new" keyword here
item.name = 'a';
item.id = 1;
// etc...
然后你可以push
将新项目放到数组上。
adrs.push(item);
alernatively你可以从数组中添加一个新项目,然后通过索引器访问它。
// 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';
答案 1 :(得分:2)
等价物将创建一个关联数组数组。
var arr = new Array();
arr[0] = { name: "name 1", id: 100, address: "addr 01" };
arr[1] = { name: "name 2", id: 101, address: "addr 02" };
//...
在此之后,您将能够:
arr[0].name = "new name 1";
或访问元素:
if (arr[1].name == "name 2") { // will be true
}
希望它有所帮助。
答案 2 :(得分:0)
<script type="text/javascript">
function address()
{
this.name="";
this.id=0;
this.address=""
}
var addresses = new Array(40);
addresses[0] = new address();
addresses[1] = new address();
.....
.....
addresses[0].name = 'a';
addresses[1].id = 5;
</script>
答案 3 :(得分:0)
结构解决的一个常见问题是排名系统。一个数组,包含某些用户的名称和编号,然后根据编号对用户进行排序。这是这个问题的javascript实现。这里使用了对象数组
<!DOCTYPE html>
<html>
<head>
<title>Structure</title>
</head>
<body>
<label>Enter Student Name 1:</label>
<input type="text" id='n0' name=""><br>
<label>Enter Student Mark 1:</label>
<input type="text" id='m0' name=""><br>
<label>Enter Student Name 2:</label>
<input type="text" id='n1' name=""><br>
<label>Enter Student Mark 2:</label>
<input type="text" id='m1' name=""><br>
<label>Enter Student Name 3:</label>
<input type="text" id='n2' name=""><br>
<label>Enter Student Mark 3:</label>
<input type="text" id='m2' name=""><br>
<input type="button" value="Ranking" onclick="result()">
<div id='id'></div>
<script type="text/javascript">
function result()
{
var b=new Array(100);
var n1=document.getElementById('n0').value;
var m1=document.getElementById('m0').value;
var n2=document.getElementById('n1').value;
var m2=document.getElementById('m1').value;
var n3=document.getElementById('n2').value;
var m3=document.getElementById('m2').value;
var a=new Array(100);
var b=new Array(100);
var n,m,j,i,temp,t,r="<br>Ranking<br><br>";
for(i=0;i<3;i++)
{
n=document.getElementById('n'+i).value;
m=document.getElementById('m'+i).value;
m=parseInt(m);
a[i]={name:n,mark:m};
}
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
{
if(a[j].mark>a[i].mark)
{
temp=a[i].mark;
t=a[i].name;
a[i].mark=a[j].mark;
a[i].name=a[j].name;
a[j].mark=temp;
a[j].name=t;
//console.log(a[i].name);
//console.log(a[i].mark);
}
}
}
for(i=0;i<3;i++)
{
r=r+a[i].name+" ";
r=r+a[i].mark+"<br>";
//console.log(a[i].name);
//console.log(a[i].mark);
}
document.getElementById('id').innerHTML=r;
}
</script>
</body>
</html>
&#13;
答案 4 :(得分:0)
答案非常简单。
const address = {
name: ""
id: 1,
address: ""
}
或动态
const address = (name, id, address) => {
// Here your checks if enters is correct
return {name, id, address}
}
如果使用TypeScript?太简单了。
interface address {
name: string;
id: number;
address: string;
}
const adress: adress = {
.....
}