고유 한 json 데이터를 수집하려고합니다. 키가 업데이트되면 해당 키가 존재합니다. 그러나 기존 키의 값을 업데이트하는 데는 성공하지 못합니다. fpr_data
에서JSON 값을 연관된 키로 업데이트하십시오.
var fpr_data = [{"rfr_id":"7","user_id":"5","fp_id":"10","raw_id":"3","raw_qty":"20.00","raw_wastage":"2","raw_name":"Buttons"},
{"rfr_id":"9","user_id":"5","fp_id":"10","raw_id":"4","raw_qty":"500.00","raw_wastage":"0","raw_name":"Yarn"},
{"rfr_id":"8","user_id":"5","fp_id":"10","raw_id":"5","raw_qty":"2.00","raw_wastage":"1","raw_name":"Needle"},
{"rfr_id":"7","user_id":"5","fp_id":"10","raw_id":"3","raw_qty":"20.00","raw_wastage":"2","raw_name":"Buttons"}];
var qty = 2, coll={}, _qty=0.00,_wastage=0.00;
// Filter and modify JSON data
$.each(fpr_data, function(i, data) {
_qty = data.raw_qty * qty;
_wastage = data.raw_wastage * qty;
// Next time add on existing keys
if(coll[data.raw_id] == data.raw_id) {
var q = coll[data.raw_id].qty + _qty;
var w = coll[data.raw_id].wastage + _wastage;
coll[data.raw_id] = {"qty":q, "wastage":w};
}
else {
coll[data.raw_id] = {"qty":_qty, "wastage":_wastage};
}
});
console.log(coll);
것은 거기에 내가 고유 한 ID를 수집 할 raw_id
하고 객체에있는 raw_id는 raw_qty
와 raw_wastage
과의 qty
및 wastage
를 업데이트합니다. 고유 한 JSON 데이터가 있지만 양과 낭비가 업데이트되지 않습니다. 내가 뭘 잘못 했니? 바이올린에서 같은 코드를 찾아 콘솔에서 결과를 확인할 수 있습니다.
예상 :가 3
에서 qty
의 값은 당신이 jQuery를 사용 JSFIDDLE
거기서 조작하는 것은 JSON이 아니라 객체 배열입니다. (문자열로 직렬화되는 경우 JSON 일뿐입니다.) – nnnnnn
@nnnnnn 감사합니다. 올바른 방향으로 나를 가리켜줍니다. JSON에서 조작 할 수 있습니까? –
아니요, 적어도 문자열 조작 일 것이기 때문에 쉽지 않습니다. 당신이하는 것처럼 객체 배열을 가지고있을 때 직접 조작 할 수 있습니다. – nnnnnn