我有一个数组,里面有对象。我计算对象的值。脚本起作用了。有没有可能把头发剪短一点(干的)?
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));
里面有第二个forEach
。我试过了,但没有得到同样的结果。
["farbigkeit40","farbigkeit44","proof","eindruck"].forEach(function(p) {
res[value.p]=res[value.p] || {quan:0};
res[value.p].quan += 1;
})
发布于 2017-07-28 21:02:17
你就快到了。您应该使用value[p]
而不是value.p
。
object.prop
在object
中引用名为prop
的属性。
object[prop]
在object
中引用名为'value of‘的属性。
例如:p = 'farbigkeit44'
:value[p]
和value['farbigkeit44']
一样,value.farbigkeit44
也一样。
https://stackoverflow.com/questions/45380837
复制相似问题