1
私はオブジェクトが内部にある配列を持っています。私はオブジェクトの値を数えます。 スクリプトが機能しています。少し短くする(DRY)ことは可能ですか?jqueryを使用してオブジェクト要素をカウントする方法
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));
第2のforEach
があります。私はこれを試みましたが、私は同じ結果を得ていませんでした。
["farbigkeit40","farbigkeit44","proof","eindruck"].forEach(function(p) {
res[value.p]=res[value.p] || {quan:0};
res[value.p].quan += 1;
})