有没有办法在不完整的数组中完成缺失的月份和销售。
有时我会收到这样的查询:
var sales = [
{'month': '04', 'sale': 126},
{'month': '06', 'sale': 165},
{'month': '07', 'sale': 10},
{'month': '08', 'sale': 20},
{'month': '09', 'sale': 211},
{'month': '10', 'sale': 27},
{'month': '11', 'sale': 112},
];
我需要添加缺少的销售月份:0。
我想我可以制作第二个包含所有月份的数组,然后比较这两个数组并选择所有月份数组的重复项:
var compareArray = [
{'month': '01', 'sale': 0},
{'month': '02', 'sale': 0},
{'month': '03', 'sale': 0},
{'month': '04', 'sale': 0},
{'month': '05', 'sale': 0},
{'month': '06', 'sale': 0},
{'month': '07', 'sale': 0},
{'month': '08', 'sale': 0},
{'month': '09', 'sale': 0},
{'month': '10', 'sale': 0},
{'month': '11', 'sale': 0},
{'month': '12', 'sale': 0},
];
最佳答案
您可以使用 Array(12).keys() 并使用 Array.from 将其映射到所需的值,而不是预先定义 12 个条目的数组输出:
var sales = [{'month': '04', 'sale': 126}, {'month': '06', 'sale': 165}, {'month': '07', 'sale': 10}, {'month': '08', 'sale': 20}, {'month': '09', 'sale': 211}, {'month': '10', 'sale': 27}, {'month': '11', 'sale': 112}];
sales = Array.from(Array(12).keys(), month =>
sales.find(sale => +sale.month === month+1) || { month: ("0"+(month+1)).substr(-2), sale: 0 }
);
console.log(sales);
关于javascript - 如何使用 javascript 填充数组中缺失的月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51768563/