How to count object elements using jquery -
i have array objects inside. count object values. script working. possible make little bit shorter(dry) ?
var mydata = [ { sku: "9017wks43dp", quan: 100, farbigkeit40: "a90zukos4599", proof: "a90zukos4499" }, { sku: "9017wks18dp", quan: 100 }, { sku: "9017was18dp", quan: 50, eindruck: "a90zukos4799" }, { sku: "9017was18dp", quan: 40, eindruck: "a90zukos4799", proof: "a90zukos4499" }, { sku: "9017wks43dp", quan: 200, farbigkeit44:"a90zukos4699", proof: "a90zukos4499" }, { sku: "9017wks43dp", quan: 200, farbigkeit40:"a90zukos4599" } ]; function countelements() { var res = {}; mydata.foreach(function(value){ res[value.sku]=res[value.sku]||{quan:0}; res[value.sku].quan+=1*value.quan; if(value.farbigkeit40 != undefined) { res[value.farbigkeit40] = res[value.farbigkeit40] || {quan:0}; res[value.farbigkeit40].quan +=1; } if(value.farbigkeit44 != undefined) { res[value.farbigkeit44] = res[value.farbigkeit44] || {quan:0}; res[value.farbigkeit44].quan +=1; } if(value.proof != undefined) { res[value.proof] = res[value.proof] || {quan:0}; res[value.proof].quan +=1; } if(value.eindruck != undefined) { res[value.eindruck] = res[value.eindruck] || {quan:0}; res[value.eindruck].quan +=1; } }); return res; } console.log(countelements()); $('#result').html(json.stringify(countelements(),null,4)); with second foreach inside. have tried didn't same result.
["farbigkeit40","farbigkeit44","proof","eindruck"].foreach(function(p) { res[value.p]=res[value.p] || {quan:0}; res[value.p].quan += 1; })
you there. instead of value.p should use value[p].
object.prop references proprty name prop within object .
object[prop] references property name 'value of' prop within object.
e.g. p = 'farbigkeit44': value[p] same value['farbigkeit44'] same value.farbigkeit44.
Comments
Post a Comment