簡體   English   中英

Javascript:如何創建多維數組?

[英]Javascript: how to create multidimensional Array?

var mahasiswa = new Array();

mahasiswa[0] = new Array("100000001", "Alda",  "man",   "1 Mei 1994", "DKV");
mahasiswa[1] = new Array("100000002", "Aldi",  "woman", "2 Mei 1994", "Seni");
mahasiswa[2] = new Array("100000003", "Aldo",  "man",   "3 Mei 1994", "Seni");
mahasiswa[3] = new Array("100000004", "Alfi",  "man",   "4 Mei 1994", "Akutansi");
mahasiswa[4] = new Array("100000005", "Andi",  "man",   "5 Mei 1994", "Seni");
mahasiswa[5] = new Array("10000006" , "Bandri","woman", "6 Mei 1994", "DKV");

我怎么只能打印女人的名字? 名稱為inex 1 (Alda / Aldi等)。

如果您確實不需要數組,則使用對象會容易得多。

將對象視為具有鍵值的映射。

var mahasiswa = [];
 mahasiswa.push({
  id: "100000001",
  name:"Alda",
  gener: "man",
  someDate: "1 Mei 1994
 }); 
 mahasiswa.push({
  id: "100000001",
  name:"Alda",
  gender: "woman",
  someDate: "1 Mei 1994
 }); 

然后,您可以使用以下內容:

for(var i=0;i<mahasiswa.length;i++){
  var person = mahasiswa[i];

  if(person.gender === "woman"){ 
    console.log(mahasiswa[i].name)
 }
}

如果確實需要數組,請執行以下操作:

for(i=0; i< mahasiswa.length; i++){
   var person = mahasiswa[i]; 
   if(person [2]=='woman'){
      console.log(person)
   }
}

這里有一些背景信息:1)如果用Java初始化數組,最好使用[]而不是new Array()。 它要快得多(請參閱: http : //jsperf.com/literal-vs-new-23

2)如果可能,請在數組上使用對象。 它更加靈活

3)請記住,對象是未排序的,對數組進行排序

我認為唯一的方法是遍歷整個數組。

for(i=0;i<= mahasiswa.length;i++){
   if(mahasiswa[i][2]=='woman'){
      //...
   }
}

否則,您應該重新排列數組,並按一維性別對它進行排序。

您可以使用以下方法檢查條目是否為女性:

mahasiswa[n][2] == "woman"

因此,使用for循環,您只能打印出女性的名字:

for (var i = 0, len = mahasiswa.length; i < len; i++){
  if (mahasiswa[i][2] == "woman"){
    console.log(mahasiswa[i][1]);
  }
}

但是通常,在javascript中,您不會將像這樣的數組定義為由對象而是對象組成的數組。

使用此結構,您可以過濾映射數組:

mahasiswa.filter( function( item ){ 
   return item[2] == "woman"; 
}).map( function( item ){ 
   return item[1] 
});  // ["Aldi", "Bandri" ]

http://jsfiddle.net/3vwo00ee/

您可以使用過濾器獲取'woman'元素,然后僅打印每個元素的名稱:

mahasiswa.filter(function (el) {
  return el[2] === 'woman';
}).forEach(function (el) {
  console.log(el[1])  
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM