什么是Javascript中的C / C ++数据结构?

时间:2010-10-22 18:49:10

标签: javascript c++ c

假设我在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;
...

定义和创建用户定义结构数组的等效方法是什么。

由于

5 个答案:

答案 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实现。这里使用了对象数组

&#13;
&#13;
<!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;
&#13;
&#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 = {
    .....
}