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; });
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; });//比字串
Sobj = Sobj.sort(function (a, b) { return a.text > b.text ? 1 : -1; });//比字串
留言
張貼留言