该循环假设我将数组存储在对象Map中,并显示出户外是最有利可图的部门。在显示室外变量时遇到问题
我想运行一个遍历数组的循环,我只是无法在地图中再次访问这些数据,并且得到部门最高的利润(销售额)。
E.g结合所有的户外销售,硬件和木工给你的总和和console.log最高的“室外”。
var salesData = [{
department: 'hardware',
sales: 4500,
day: 'Monday'
}, {
department: 'outdoor',
sales: 1500,
day: 'Monday'
}, {
department: 'carpentry',
sales: 5500,
day: 'Monday'
}, {
department: 'hardware',
sales: 7500,
day: 'Tuesday'
}, {
department: 'outdoor',
sales: 2505,
day: 'Tuesday'
}, {
department: 'carpentry',
sales: 1540,
day: 'Tuesday'
}, {
department: 'hardware',
sales: 1500,
day: 'Wednesday'
}, {
department: 'outdoor',
sales: 8507,
day: 'Wednesday'
}, {
department: 'carpentry',
sales: 8009,
day: 'Wednesday'
}, {
department: 'hardware',
sales: 12000,
day: 'Thursday'
}, {
department: 'outdoor',
sales: 18007,
day: 'Thursday'
}, {
department: 'carpentry',
sales: 6109,
day: 'Thursday'
}, {
department: 'hardware',
sales: 7005,
day: 'Friday'
}, {
department: 'outdoor',
sales: 12006,
day: 'Friday'
}, {
department: 'carpentry',
sales: 16109,
day: 'Friday'
}];
var departmentMap = {};
var high = "";
function mostProfitableDepartment(salesList) {
for (var i = 0; i < salesList.length; i++) {
var currentDep = salesList[i];
if (departmentMap[currentDep] === undefined) {
departmentMap[currentDep] = 0;
}
departmentMap[currentDep] = departmentMap[currentDep] + 1
}
console.log(departmentMap);
}
mostProfitableDepartment(salesData);
for (var depHigh in departmentMap) {
if (departmentMap[depHigh] > high) {
high = departmentMap[depHigh]
}
}
console.log(high);
不完全是,但我确实有做如上指示。我无法得到正确的。 @Endless – Duvall912
Sry,误解了你的问题,更新了答案 – Endless
我实际上并不了解代码,请你澄清一下,而不使用reduce函数。 @Endless – Duvall912