[英]What is a C/C++ data structure equivalent in Javascript?
假設我在 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;
...
定義和創建用戶定義結構數組的等效方法是什么。
謝謝
如果您要為對象預定義布局,您可能需要使用構造函數樣式的函數。
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);
或者,您可以從數組中添加一個新項目,然后通過索引器訪問它。
// 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';
等效的是創建一個關聯數組的數組。
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
}
希望它有幫助。
<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>
通過結構解決的一個常見問題是排名系統。 一個數組,包含一些用戶的名稱和數量,然后根據數量對用戶進行排序。 這是這個問題的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>
答案很簡單。
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 = {
.....
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.