Thursday, May 21, 2015

[JavaScript] 淺談在 JS 中使用 "物件 Object" 與 "陣列 Array" 的感想

PHP 的陣列非常好用,所以相對之下 JS 的陣列就顯的有點綁手綁腳,例如:無法用字串當"鍵值Key"(或稱"索引Index"),所幸可以拿 JS 的"物件 Object"來替代,使用方式如下...
var obj = {};
obj['John'] = {};
obj['John']['year'] = 3;

//舉一個簡單的應用
//現在要幫員工的年資加1,舊員工只有 John 一人,Alen、Bill是新進人員,所以直接給1
var arr = [];
arr = ['Alen', 'Bill', 'John'];
for(var k in arr) {
  if(obj[arr[k]]) {
    if(obj[arr[k]]['year']) {
        obj[arr[k]]['year'] += 1;
    }
    else {
        obj[arr[k]]['year'] = 1;
    }
  }
  else {
    obj[arr[k]] = {};
    obj[arr[k]]['year'] = 1;
  }
}
console.log(obj);

線上Demo

//備註1: 要用if判斷第二維存不存在,如果不存在,就要建立物件 (但不用加 var)
//備註2: JS的 "+=" 不能像 PHP 一樣無腦使用,如果物件一開始不存在的時候,就要用 "=",不然會變成 NaN

No comments:

Post a Comment