javascript - Bin Counter - 增加一个 javascript 数组
问题描述
我需要做一个垃圾计数器。它将特定于我的数据,但作为示例,我将使用杂货店。我看到了很多增加项目的方法,但这更像是计算 SQL 列中不同条目的数量(我也不擅长)。
假设杂货店想通过收银机计算他们每天售出的商品数量。苹果和牛奶在一天结束时可能有很高的数量,但阵列必须能够从库存中添加元素,即使它们不经常出售。
function onDataBound(e) {
var grid = $('grid').data('kendoGrid');
const binCounter = {};
$.each(grid.items(), function (index, item) {
var row = dataSource.getByUid($(item).data('uid'));
var itemName = row.ItemName; // apples, milk, condoms, hammers, etc.
var soldAs = row.SoldAs; // each, 6-pack, carton, dozen, case, etc.
var itemColor = row.ItemColor;
// help needed here
binCounter[itemName]++;
binCounter[soldAs]++;
binCounter[itemColor]++;
});
$.each(binCounter, function (index, item) {
console.log('binCounter[' + index + ']:');
console.log(item);
})
};
结果将具有binCounter['apple']
和binCounter['milk']
存储的数量。
解决方案
您不能增加尚未初始化的 bin。您必须先检查 bin 是否存在。
所以而不是
binCounter[itemName]++;
你需要
if (binCounter[itemName]) {
binCounter[itemName]++;
} else {
binCounter[itemName] = 1;
}
由于您需要重复执行此操作,您可以为其编写一个函数:
function increment_bin(binCounter, key) {
if (binCounter[itemName]) {
binCounter[itemName]++;
} else {
binCounter[itemName] = 1;
}
}
然后你可以做
increment_bin(binCounter, itemName);
increment_bin(binCounter, soldAs);
increment_bin(binCounter, itemColor);
推荐阅读
- azure-monitoring - 基本负载均衡器是否监控 Azure 中的指标?
- mysql - 在mysql中从具有不同日期的其他值中添加值
- android - Unable to dismiss BottomSheetDialog
- r - R 的 lm() 函数在不报告错误或警告的情况下删除因子水平(除了截距估计器)
- apache - 如果找不到内容,则重定向到旧网站
- react-native-android - 如何在反应本地语言环境中使用 unicode 在英语和泰米尔语之间切换?
- html - PrimeNG p-checkbox - Add asterisk mandatory sign after label
- python-3.x - 烧瓶邮件错误“SMTPServerDisconnected('请先运行连接()')”
- amazon-web-services - 如何根据资源标签授予对所有 AWS 资源的访问权限?
- reactjs - 在 NextJs 中包含 Sass 的正确方法是什么?