javascript Json Obj 物件 Array 陣列 處理筆記

新增Obj問題

一般是這樣加
QsampSelData.push({ snum: snum, scount: scount, stext: Qtext });
但是今天碰到個問題
有 A B 2個相同結構的 json Obj

 var find = $.grep(A function (e) { return e.snum == val; });
               if(find)
               {
                   B.push(find);
               }
結果又不行 會變成 物件中的物件
原來 $.grep 是找到 所有符合的物件
 find 就是個 Obj 集合 所以要改
B.push(find[0]); 這是只有一個的情況
如果很多 就要用 $.each() 去一個個加 
不然層數會錯誤

Json Obj 表示法:

今天在鬼打牆˙ 所以紀錄一下
今天寫一個迴圈 塞進  snum, scount, Qtext  3個變數
QsampSelData.push([{ "snum": snum, "scount": scount, "stext": Qtext }]);
塞完丟給 EasyUI datagrid
問題是怎麼都show不出來 明明有資料
原來應該是這樣寫
QsampSelData.push({ snum: snum, scount: scount, stext: Qtext });
多了 [ ] 變成 物件中的物件

尋找Obj內的一個值

介紹jQuery map()與grep()

var result = $.grep(myArray, function(e){ return e.id == id; });

$.grep會傳回符合條件的 物件集合

檢查有沒有找到   用 .length 看就知道
var names = $.map(items, function(item) { return item.name;});

$.map會傳回 轉換後的 字串陣列 集合 不會檢查

當陣列用  事後再用 .indexOf() 去找


排序

Sobj = Sobj.sort(function (a, b) { return a.id - b.id; });//比數字
排字串就用
Sobj = Sobj.sort(function (a, b) { return a.text > b.text ? 1 : -1; });//比字串

留言

熱門文章